【问题标题】:How to create a Dynamic Web Project with JAX-WS based Web Service in Eclipse?如何在 Eclipse 中使用基于 JAX-WS 的 Web 服务创建动态 Web 项目?
【发布时间】:2025-12-14 12:15:01
【问题描述】:

如何使用EclipseDynamic Web Project 中创建和运行JAX-WS Web 服务?我将使用 Tomcat 7 作为我的服务器。您能否提供有关如何操作的分步教程?一个 hello world 网络服务就可以了。

我关注了this tutorial,但我无法让它运行。我没有按照教程的第 4 步到第 6 步进行操作,因为我已经在使用 Eclipse,并且目录已经在动态 Web 项目上正确构建。另外,我的 Tomcat 在 JDK 6 下运行。由于 JAX-WS 已经是 JDK 6 的一部分,因此我无需将其复制到 Tomcat 中。当我运行教程中指示的 URL 时,我收到资源未找到错误。

【问题讨论】:

    标签: java eclipse web-services tomcat jax-ws


    【解决方案1】:

    我认为 jax-ws 不是 JDK 的一部分。您必须将 jax-ws 实现复制到 Tomcat 中。 您在 JDK 文件夹中找到 jax-ws.jar 了吗?

    【讨论】:

    【解决方案2】:

    好的,JDK6+JAXWS经常出问题。

    您需要创建一个背书文件夹。

    尝试从 Eclipse 运行 Tomcat。使用这些额外的 VM 参数:

    -Djava.endorsed.dirs="<your-server>\endorsed" -Djavax.xml.soap.MessageFactory=com.sun.xml.messaging.saaj.soap.MessageFactoryImpl
    -Djavax.xml.soap.SOAPFactory=com.sun.xml.messaging.saaj.soap.SOAPFactoryImpl
    -Djavax.xml.soap.MetaFactory=com.sun.xml.messaging.saaj.soap.SAAJMetaFactoryImpl -Dcom.sun.xml.ws.transport.http.client.HttpTransportPipe.dump=true
    

    现在,将最新的 saaj-impl 和 saaj-api 放到 endorsed 文件夹中。

    这应该可行。

    【讨论】:

    • 感谢您的回复!什么是背书文件夹? VM-Arguments 是什么意思?
    • 我不确定......我认为认可的 jar 将在 JDK 加载之前加载。所以jdk的实现被覆盖了。并且这两个 impl 是兼容的。