我想将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输出。

我的问题是:
  • doc页面中的JAVA_HOME和JDK_HOME有什么区别?有什么重要的或仅两种引用JAVA_HOME的方法吗?
  • 'wsgen -version'是检查使用的jaxws版本的有效方法,还是始终在原始jdk中调用exe,但这并不意味着将使用认可的jar?
  • 有人知道非常详细的步骤来在jdk.16中安装jaxws2.2吗?

  • 我发现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/

    10-14 08:58