【问题标题】:How to get the URL of my WSDL?如何获取我的 WSDL 的 URL?
【发布时间】:2025-11-20 23:00:01
【问题描述】:

我使用 Netbeans、Java EE6、JAX-WS 和 TomCat 创建了一个非常简单的 Web 服务。 它只有一个@WebMethod getWsdlURL(),它应该返回我的wsdl的URL,它应该类似于:

http://192.168.70.44:8088/SimpleWebService/WebService?wsdl

但是我不知道该怎么做。

谁能帮帮我?

【问题讨论】:

  • 如果您在构建时从 WSDL 生成类,您的服务类将扩展 javax.xml.ws.Service,因此将继承 getWSDLDocumentLocation 方法。
  • @VGR 该评论是实际问题的唯一答案,你为什么不把它放在答案中。

标签: java web-services tomcat jax-ws


【解决方案1】:

如果您在构建时从 WSDL 生成类,您的服务类将扩展 javax.xml.ws.Service,因此将继承 getWSDLDocumentLocation 方法。

【讨论】:

    【解决方案2】:

    不要添加您自己的服务来返回 URL。取决于已经提供它的运行时。

    只需在浏览器中打开网址即可。网址将是....

    http://<hostname>:<port>/<webappname>/<servletEndpoint>?wsdl
    

    【讨论】:

      【解决方案3】:

      要添加到 david99world 的答案,您可以在 WEB-INF 目录中的 sun-jaxws.xml 配置文件中查找端点 url-pattern。

      该文件可能有如下定义:

      <endpoints xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime" version="2.0">
      
          <endpoint name="ws/MyService" implementation="com.test.ws.services.MyService"
              url-pattern="/ws/MyService" enable-mtom="false" />
      
      </endpoints>
      

      【讨论】: