【问题标题】:Problem using jax-ws使用 jax-ws 的问题
【发布时间】:2010-12-28 11:38:19
【问题描述】:

我正在使用 JAX-WS 联系 Web-Service 并收到以下错误:

com.sun.xml.messaging.saaj.soap.LocalStrings != com.sun.xml.internal.messaging.saaj.soap.LocalStrings

搜索了一下这种问题,发现了这个 http://forums.java.net/node/678924
但这对我来说是行不通的。
jdk6似乎有问题(我目前正在使用java(build 1.6.0_22-b04)) 和 saaj-impl(目前使用 saaj-impl-1.3.2.jar)。
显然 jdk6 有自己的 saaj 但在另一个包中(内部添加) 它与 saaj-impl(由 maven2 导入)进行战斗。

使用Tomcat6也会有问题吗(只是想知道,完全不确定:))。

如果需要更多代码或配置文件,我会提供。

非常感谢任何帮助。
米洛斯

【问题讨论】:

    标签: java web-services jax-ws saaj


    【解决方案1】:

    您可能需要做的就是将最新版本放在 java 认可的目录中。将它放在 JDK 和 JRE 安装中。如果您使用的是 Tomcat,它也有其认可的目录。

    是的,jdk 6 上的 jax-ws 确实很痛苦,他们试图将其嵌入以便开箱即用,但是当您需要更新某些东西时,一切都会中断。或者尝试使用 CXF,它也不是一帆风顺的,但往往不会受到这些冲突的影响。

    【讨论】:

    • 感谢 jbx 的快速回复!我假设您建议将 saaj-impl.jar 放在 JDK 和 JRE 以及 Tomcat 的认可目录中。问题是 Tomcat6 没有名为 endorsed 或类似的目录(不像 Tomcat5 有 /common/endorsed),你能指导如何做到这一点,我应该手动创建目录吗(我假设在 $CATALINA_HOME 中)?还有把它放在JRE和JDK的哪里,那里没有这样的目录。提前致谢!
    • 我怀疑这会有多大的不同,因为 Tomcat 已经使用了你的 jdk 中存在的 saaj-impl。作为事后的想法 - 您的 Tomcat 实际上是否使用兼容的 JRE?检查 Tomcat 指向的 JAVA_HOME 是什么,是否与您编译时所针对的相同。
    • Tomcat 正在使用 (build 1.6.0_06-b02),抱歉,我的错误是因为我之前写过它使用的是 (build 1.6.0_22-b04)。那是唯一安装的java。我不确定有什么区别,因为它毕竟是 jdk6。我应该把这个 jar 放在 lib 文件夹中吗?
    • 从 Tomcat 6 开始,他们将其从 common/endorsed 中删除,现在它直接位于基本目录下。通常它不存在,但您可以创建它并且它应该可以工作,因为默认启动脚本包括: ${CATALINA_BASE}/endorsed 。您可以检查 ${CATALINA_BASE}/bin/setclasspath.sh 以确保 %{CATALINA_BASE}/endorsed 是认可库的正确路径。
    • 我刚刚创建并设置了 $CATALINA_HOME/endorsed 的路径,将 jar 复制到那里,但错误保持不变。有什么想法或建议吗?也许使用 jdk1.5 会有所帮助,jax-ws 在那个版本的 Java 上工作正常吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-15
    • 1970-01-01
    • 1970-01-01
    • 2017-03-18
    相关资源
    最近更新 更多