我目前正在尝试让我的应用程序提供Web服务。 该应用程序使用spring并在Weblogic 10.3实例下运行。
我按照“合同优先”的方法构建了web服务。 所以我基本上有一个生成的WS-Interface,我的接口实现,定义servlet绑定的web.xml和定义端点的sun-jaxws.xml。 (或多或少类似于此:http://www.mkyong.com/webservices/jax-ws/deploy-jax-ws-web-services-on-tomcat/)。
现在,在将我的应用程序部署到weblogic之后,实际上一切都很好。 我可以在我的浏览器中输入WebService的URL,我看到了WSDL,我可以调用它的方法。 如果不是一个小的化妆品事实: 在WL的部署概述中,当我单击部署时,它会显示一个WebServices列表...它是空的。所以我的网络服务没有列在那里。
那么,任何人都可以告诉我,我必须做些什么才能让网络服务显示在那里?
答案 0 :(得分:1)
虽然为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>
并添加webservice描述符(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>
答案 1 :(得分:0)
根据创建Web Service的开发人员,将
webservices.xml
和weblogic-webservices.xml
等部署描述符添加到应用程序中。描述符用于配置,覆盖默认设置和添加元数据。对于Web服务,这可以是端点,端口配置,Web服务与EJB组件的链接等。部署后,Web Services中将列出Web服务的WSDL位置,并且可以在运行时检索WSDL。
From the Trenches 2 | Patching OSB and SOA Suite to PS5
另见: