我目前正在尝试让我的应用程序提供网络服务。
该应用程序使用 spring 并在 Weblogic 10.3 实例下运行。
我按照“合同第一”的方法构建了网络服务。
所以我基本上拥有的是生成的 WS 接口、该接口的实现、定义 servlet 绑定的 web.xml 和定义端点的 sun-jaxws.xml。
(或多或少类似于:http://www.mkyong.com/webservices/jax-ws/deploy-jax-ws-web-services-on-tomcat/ http://www.mkyong.com/webservices/jax-ws/deploy-jax-ws-web-services-on-tomcat/).
现在,将我的应用程序部署到 weblogic 后,实际上一切都工作正常。
我可以在浏览器中输入 WebService 的 URL,我可以看到 WSDL,我可以调用它的方法。
如果这不是一个小事实的话:
在 WL 的部署概述中,当我单击部署时,它会显示一个 Web 服务列表...它是空的。所以我的网络服务没有在那里列出。
那么,谁能告诉我,我必须做什么才能让网络服务出现在那里?
虽然 JAX-WS 的 Web 服务描述符并不是真正重要,但 Weblogic 有时无法识别 Web 服务(无法找到原因)
以下是我为使其正常工作所做的事情。在web.xml中添加WebService实现类作为Servlet
<?xml version='1.0' encoding='UTF-8'?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" id="WebApp_ID">
<display-name>MyWebService</display-name>
<servlet>
<servlet-name>serviceServlet</servlet-name>
<servlet-class>com.aneesh.WebServiceImpl</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>serviceServlet</servlet-name>
<url-pattern>/Service</url-pattern>
</servlet-mapping>
</web-app>
并添加 Web 服务描述符 (webservices.xml)
<?xml version='1.0' encoding='UTF-8'?>
<webservices xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.1">
<webservice-description>
<webservice-description-name>MyWebService</webservice-description-name>
<port-component>
<port-component-name>MyWebServiceSoapPort</port-component-name>
<wsdl-port xmlns:an="http://www.aneesh.com/service">an:MyWebServiceSoapPort</wsdl-port>
<service-endpoint-interface>com.aneesh.WebService</service-endpoint-interface>
<service-impl-bean>
<servlet-link>serviceServlet</servlet-link>
</service-impl-bean>
</port-component>
</webservice-description>
</webservices>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)