jax-ws无法获取wsdl,sun-jaxws.xml可能是错误的?

问题描述:

我开发了第一个服务,它工作得很好。现在我正在开发另一项类似的服务。当我手动发布端点时,我可以浏览wsdl。但是当我将ear文件部署到JBoss时,我无法看到wsdl。 EAR成功部署到JBoss,我看到状态为“正在运行”并正在运行。jax-ws无法获取wsdl,sun-jaxws.xml可能是错误的?

这是我的sun-jaxws.xml文件。我期望将wsdl lto部署到url:port/services/Lookup?wsdl。对?

<?xml version="1.0" encoding="UTF-8"?> 

<endpoints xmlns='http://java.sun.com/xml/ns/jax-ws/ri/runtime' version='2.0'> 
    <endpoint 
      name='LookupService' 
      implementation='com.company.it.webservices.LookupService' 
      url-pattern='/services/Lookup'/> 
</endpoints> 

这里是我的web.xml文件

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns="http://java.sun.com/xml/ns/javaee" 
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
      http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
      version="2.5"> 

    <listener> 
     <listener-class>com.sun.xml.ws.transport.http.servlet.WSServletContextListener</listener-class> 
    </listener> 
    <servlet> 
     <description>JAX-WS endpoint</description> 
     <display-name>WSServlet</display-name> 
     <servlet-name>WSServlet</servlet-name> 
     <servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>WSServlet</servlet-name> 
     <url-pattern>/services/*</url-pattern> 
    </servlet-mapping> 
    </web-app> 

TIA对您有所帮助。

删除web.xml文件的所有内容,但保持它自己的文件。说实话,我不知道为什么会出现这种情况,但部署到JBoss的WS无法正常工作。

+0

不,它没有工作。任何方式在JBoss上调试和获取WSDL的正确URL? – priceline

+0

以及讨论web.xml sun-jaxws.xml文件的详细文档? – priceline

+0

嗯......不。尽管我通常使用WAR归档来部署Web服务,并且根本没有sun-jaxws.xml(同时保持web.xml为空)。 – Xargos

我知道这是旧的文章,但可能谁的人来到这里寻找他们的问题,它的解决方案帮助,OK,解决这个问题的解释here

它是如何工作的? JAX WS参考实现附带com.sun.xml.ws.transport.http.servlet.WSServletContextListenercom.sun.xml.ws.transport.http.servlet.WSServlet,这些类负责处理请求。如果你熟悉web.xml,这很容易理解。