Per*_*ium 8 java jax-ws endorsed
我想将我的jaxws升级到2.2(jdk1.6与jaxws 2.1捆绑在一起).我的jdk是(我没有安装公共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)
Run Code Online (Sandbox Code Playgroud)
在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
Run Code Online (Sandbox Code Playgroud)
我还是得到:
JAX-WS RI 2.1.6 in JDK 6
Run Code Online (Sandbox Code Playgroud)
我也试过创建文件夹JAVA_HOME\jre\lib\endorsed(请注意,在文档中他们说JDK_HOME,但因为我只有JAVA_HOME,所以我使用了这个路径).仍然是相同的wsgen输出.
我的问题是:
我发现这篇帖子对我所看到的内容有一些暗示
Sai*_*ali 11
您应该检查系统属性java.endorsed.dirs,例如通过调用System.getProperty("java.endorsed.dirs").在Windows机器上,这通常是类似的C:\Program Files\Java\jdk1.6.0_16\jre\lib\endorsed.把你想要的jar文件放在这里.如果该目录不存在,则只需创建它.
另一种选择是将jar放在您自己喜欢的目录中,但通过添加命令行开关来覆盖系统属性-Djava.endorsed.dirs=<Your endorsed jars directory>.
小智 1
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