2016-02-03 65 views
0

我正在通過WAS7.0發佈JAX-RPC Web服務。我通過RAD8.0生成了這些骨架。 AFter generation在本地部署並且工作完美,因爲我通過Soap UI獲得期望的響應。javax.servlet.ServletException:WSWS3142E:錯誤:找不到Web服務引擎

現在我部署的EAR在我們的測試服務器,並將其與以下行啓動了罰款

[2/3/16 3:11:32:137 CST] 00000053 WebServicesSe W com.ibm.ws.webservices.engine.transport.http.WebServicesServlet setEndptMgrMBean WSWS4123E: Could not locate the Endpoint Manager MBean for com_service_mywebservices_MyServiceV1_0SOAPoHTTPImpl. 
[2/3/16 3:11:32:137 CST] 00000053 ServletWrappe I com.ibm.ws.webcontainer.servlet.ServletWrapper init SRVE0242I: [TIIS_ADE] [/TIIS/eAgent/Ade] [com_service_mywebservices_MyServiceV1_0SOAPoHTTPImpl]: Initialization successful. 

現在部署,當我嘗試訪問WSDL或發送通過SOAP UI的請求後,我得到這個錯誤:

SourceId: com.ibm.ws.webcontainer.servlet.ServletWrapper.service 
    ExtendedMessage: BBOO0220E: SRVE0014E: Uncaught service() exception root cause com_service_mywebservices_MyServiceV1_0SOAPoHTTPImpl: javax.servlet.ServletException: WSWS3142E: Error: Could not find Web services engine. 
    at com.ibm.ws.webservices.engine.transport.http.WebServicesServlet.doPost(WebServicesServlet.java:1105) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:595) 
    at com.ibm.ws.webservices.engine.transport.http.WebServicesServletBase.service(WebServicesServletBase.java:344) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:668) 
    at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1230) 
    at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:779) 
    at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:478) 
    at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178) 
    at com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:136) 
    at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:97) 
    at com.mycompany.eagent.abc.app.service.CrossScriptingFilter.doFilter(CrossScriptingFilter.java:41) 
    at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195) 
    at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91) 
    at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:964 

服務端點通過數據的權力,但數據訪問電源不承載任何WSDL,它只是傳遞請求。

任何想法,可能出了問題....

的事情,我沒有解決:

  • 我檢查的部署EAR的模式路徑(XSD)。此服務從我的本地運行
  • 我檢查了Web.xml和WebService.xml以查找任何可能的缺失鏈接。

的web.xml條目:

<servlet> 
    <servlet-name>com_service_mywebservices_MyServiceV1_0SOAPoHTTPImpl</servlet-name> 
    <servlet-class>com.service.mywebservices.MyServiceV1_0SOAPoHTTPImpl</servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 
<servlet-mapping> 
    <servlet-name>com_service_mywebservices_MyServiceV1_0SOAPoHTTPImpl</servlet-name> 
    <url-pattern>services/SOAPoHTTPEndpoint</url-pattern> 
</servlet-mapping> 
+0

我仍然找不到問題的根本原因,但是當我在本地部署Test Server的ear文件時,我收到創建的異常:javax.servlet.ServletException:WSWS3142E:錯誤:無法找到Web服務發動機。 –

+0

請注意這一點。 –

+0

部署完成後,您是否可以使用?wsdl驗證您的wsdl? –

回答

0

我已經找到了問題和已修復的根本原因。我做了幾次命中和試用方法,最終達成了解決方案。

首先,這是一個通用錯誤(javax.servlet.ServletException:WSWS3142E:錯誤:找不到Web服務引擎),這可能在幾種情況下發生。在我的例子中,異常源自其他Web服務。有2個Web服務的url模式爲「services/MyWebService」和「services/OtherWebService」。 WAS嘗試解析url服務,它找到MyWebServices(IMPL類),但沒有找到OtherWebService並拋出此Generic異常。 爲什麼這個OtherWebService不可用?我重構了代碼,並將其移動到不同的文件夾結構中,因爲一些常見的xsd /文件發生衝突。所以Web.xml需要修改爲OtherWebService,我沒有作爲本地工作區不需要這個WS,並從Web.xml中刪除,但測試服務器的web.xml有這個條目,所以它是拋出錯誤。