sun-jaxws.xml中的JAX-WS多端点

刚开始使用JAX-WS。 我在一个WAR文件中创建了2个测试Web服务,如下所示….

package com.djs; import javax.jws.WebService; @WebService() public class AddTwoInts { public int performAdd(int firstNum, int secondNum) { return firstNum + secondNum; } } 

和…..

 package com.djs; import javax.jws.WebService; @WebService() public class SayHello { public String sayHello(String inwards) { return "Hello " + inwards; } } 

这是我的web.xml

     com.sun.xml.ws.transport.http.servlet.WSServletContextListener    jaxws com.sun.xml.ws.transport.http.servlet.WSServlet   jaxws /   

这是sun-jaxws.xml

      

我部署到Tomcat 7并使用http://localhost:8080/MyApp/AddTwoInts?wsdl来获取AddTwoInts的WSDL OK ….但是当我执行http://localhost:8080/MyApp/SayHello?wsdl我得到找不到404页错误….

任何建议表示赞赏

戴夫,

我猜你错过了两个端点的servlet映射。

将以下内容添加到您的web.xml,然后重试。 让我知道这是否解决了这个问题。

  AddTwoInts com.sun.xml.ws.transport.http.servlet.WSServlet   AddTwoInts /AddTwoInts   SayHello com.sun.xml.ws.transport.http.servlet.WSServlet   SayHello /SayHello  

您希望web.xml仅引用一个servlet,位于urlMapping /:

   services com.sun.xml.ws.transport.http.servlet.WSServlet  1   services /  

然后,在sun-jaxws.xml中的完整所需路径中包含多个端点:

   

注意那里的“couldhavemore”…你可以添加到sun-jaxws.xml文件中的相关路径以获得完整的所需路径。 我已经获得了一个服务来处理除/之外的web.xml条目,但是你需要为每个服务提供一个web.xml条目。 似乎需要使用多个工作/然后将完整路径放在sun-jaxws.xml中。