在jdk1.6中使用Endorsed目录的确切方法是什么
问题内容:
我想将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自己的文档中,他们解释了如何做到这一点:
解决此问题的一种方法是将jaxws-api.jar和jaxb-api.jar复制到JRE认可的目录中,即 $JAVA_HOME/lib/endorsed (or $JDK_HOME/jre/lib/endorsed)
但是我不确定这对我的安装是否有任何影响。对于初学者,我只定义了%JAVA_HOME%
。而且文件夹$JAVA_HOME/lib/endorsed
不存在,所以我创建并复制了两个罐子。但是如果我这样做(wsgen是来自jaxws的工具)
wsgen -version
我仍然得到:
JAX-WS RI 2.1.6 in JDK 6
我还尝试创建文件夹JAVA_HOME\jre\lib\endorsed
(请注意,在文档中他们说的是JDK_HOME,但由于我只有JAVA_HOME,所以使用了此路径)。仍然是相同的wsgen输出。
我的问题是:
- 文档页面中的JAVA_HOME和JDK_HOME有什么区别?有什么重要的或仅两种引用JAVA_HOME的方法吗?
- ‘wsgen -version’是检查使用的jaxws版本的有效方法,还是始终在原始jdk中调用exe,但这并不意味着将使用认可的jar?
- 有人知道在jdk.16中安装jaxws2.2的 非常详细的步骤 吗?
我发现这篇文章暗示了我所看到的一切
问题答案:
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复制到认可的目录中(按照您的原始描述)
但是,您现在需要使用jax-ws 2.2更新/下载中提供的驱动程序,而不是使用wsgen.exe或wsimport.exe(适用于您的项目)。
在从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