我想将jaxws升级到2.2(jdk1.6与jaxws 2.1捆绑在一起)。我的jdk是(我没有安装public jre):
java version "1.6.0_20"
Java(TM) SE Runtime Environment (build 1.6.0_20-b02)
Java HotSpot(TM) Client VM (build 16.3-b01, mixed mode)
在jaxws' own doc中,他们解释了如何做到这一点:
解决此问题的一种方法是将jaxws-api.jar和jaxb-api.jar复制到JRE认可的目录
$JAVA_HOME/lib/endorsed (or $JDK_HOME/jre/lib/endorsed)
中但是我不确定这对我的安装是否有任何影响。对于初学者,我只定义了
%JAVA_HOME%
。而且文件夹$JAVA_HOME/lib/endorsed
不存在,因此我创建并复制了两个jar。但是如果我这样做(wsgen是来自jaxws的工具)wsgen -version
我仍然得到:
JAX-WS RI 2.1.6 in JDK 6
我也尝试过创建文件夹
JAVA_HOME\jre\lib\endorsed
(请注意,在文档中他们说的是JDK_HOME,但由于我只有JAVA_HOME,所以我使用了此路径)。仍然是相同的wsgen输出。我的问题是:
我发现this post对我所看到的内容有一些提示
最佳答案
jre中包含的wsimport和wsgen作为exe位于jre/bin目录中,如果仍然从命令行调用它,它将仍然运行Jax-WS 2.1实现。
要更新到Jax-WS 2.2,您需要从jaxws网站下载相关的JAX-WS 2.2.X RI。
您需要将内容提取到计算机上。
您还需要将jaxws-api.jar和jaxb-api.jar复制到认可的目录中(按照您的原始描述)
但是,您现在无需使用wsgen.exe或wsimport.exe(适用于您的项目),而需要使用jax-ws 2.2更新/下载中提供的服务。
在您从JAX-WS 2.2下载中提取的jaxws-ri目录中,您将看到一个bin目录和4个文件(wsgen.bat,wsgen.sh,wsimport.bat,wsimport.sh),这些是您需要运行它。
要运行它们,您必须设置JAXWS_HOME环境变量(有关详细信息,请参见wsgen/wsimport.bat/sh文件)。
现在应该可以让您在JDK 1.6上运行JAX-WS 2.2
关于java - 在jdk1.6中使用Endorsed目录的确切方法是什么,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2859471/