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无法正常工作。
答
我知道这是旧的文章,但可能谁的人来到这里寻找他们的问题,它的解决方案帮助,OK,解决这个问题的解释here,
它是如何工作的? JAX WS参考实现附带com.sun.xml.ws.transport.http.servlet.WSServletContextListener
和com.sun.xml.ws.transport.http.servlet.WSServlet
,这些类负责处理请求。如果你熟悉web.xml,这很容易理解。
不,它没有工作。任何方式在JBoss上调试和获取WSDL的正确URL? – priceline
以及讨论web.xml sun-jaxws.xml文件的详细文档? – priceline
嗯......不。尽管我通常使用WAR归档来部署Web服务,并且根本没有sun-jaxws.xml(同时保持web.xml为空)。 – Xargos