javaweb-serviceswebibm-wasjax-rpc

javax.servlet.ServletException: WSWS3142E: Error: Could not find Web services engine


I am publishing a JAX-RPC Webservice through WAS7.0. I have generated the skeletons through RAD8.0. The AFter generation its deployed in the local and working perfectly fine as I am receiving desired response through Soap UI.

Now I deployed the EAR in our test servers and it starts up fine with the following lines

[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.

Now after deploying when I try to access the WSDL or Send a request through Soap UI, I am getting this error:

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

The Service endpoint is accessed through Data Power but Data Power don't host any WSDL, it just passes the Request.

Any idea what might went wrong....

Things That I did to resolve:

Web.xml entry:

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

Solution

  • I have found the root cause of the problem and its been fixed. I did several hit and trial methods and finally reach the solution.

    First of all this is a generic error( javax.servlet.ServletException: WSWS3142E: Error: Could not find Web services engine) which can occur in several cases. In my case The exception originated from other web service. There were 2 web services with the url pattern "services/MyWebService" and "services/OtherWebService". The WAS tries to resolve the url Services, It finds MyWebServices(The IMPL class) but it didn't find OtherWebService and threw this Generic exception. And to why this OtherWebService were unavailable? I refactored the code and moved it in different folder structure as some common xsd/files were conflicting. So The Web.xml needs to be modified for the OtherWebService which I didn't as the Local Workspace dont need this WS and was removed from Web.xml but the Test Server's web.xml has that entry so it was throwing the error.