2013-04-15 43 views
4

我目前正試圖讓我的應用程序提供web服務。 該應用程序使用spring並在Weblogic 10.3實例下運行。WebService在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的部署概述中,當我單擊該部署時,它向我顯示一個Web服務...列表,它是空的。所以我的web服務不在那裏列出。

那麼,誰能告訴我,我必須做些什麼才能讓webservice出現在那裏?

回答

0

根據創建Web Service的開發人員,部署描述符(如webservices.xmlweblogic-webservices.xml)已添加到應用程序中。描述符用於配置,覆蓋默認設置以及添加元數據。對於Web服務,這可以是端點,端口配置,Web服務與EJB組件的鏈接等。部署時,Web服務的WSDL位置在WebLogic控制檯中列出,並且可以在運行時檢索WSDL。

From the Trenches 2 | Patching OSB and SOA Suite to PS5

參見:

+0

老實說,我既沒有一個'webservices.xml'也不是weblogic的' -webservices.xml'。但是看看oracle文檔(你的「另見」的第一個鏈接),它指出,我不應該創建/觸摸它們:「本節僅供參考。通常,配置更新使用管理控制檯或使用JWS批註,並且不需要直接編輯任何部署描述符文件。「 – Bluddymarri

1

雖然它不是真的必須有用於JAX-WS web服務描述符中,WebLogic有時失敗識別Web服務(無法找到原因f或這個)

下面是我所做的工作。添加WebService的實現類作爲一個Servlet在web.xml

<?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>