Skip to content
Advertisement

Servlet mapping not found error while deploying JAX RS application to web sphere 8.5

I am new to web services. have developed a simple rest web svc in java using Eclipse, Tomcat following this link. Application successfully runs on Tomcat but when i deploy it to IBM WebSphere 8.5.5. It deploys successfully but fails to start. I know its something with my Web.xml so i am adding it for rectification. Tried this but to no avail.

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">
  <display-name>wstest</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
 
  <servlet>
    <servlet-name>Java WS</servlet-name>
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
    
  
  <init-param>
  <param-name>jersey.config.server.provider.packages</param-name>
  <param-value>book</param-value>
  </init-param>
   <load-on-startup>3</load-on-startup>
   </servlet>
  
  <servlet-mapping>
  <servlet-name>Java WS</servlet-name>
  <url-pattern>/*</url-pattern>
  
  
  </servlet-mapping>
</web-app> 

Web Sphere log generated when i try to start application is:-

0000112c ApplicationMg A   WSVR0204I: Application: TestWS_war  Application build level: Unknown
0000112c webapp        E com.ibm.ws.wswebcontainer.webapp.WebAppConfigurationHelper 
constructServletMappings SRVE0303E: Servlet name for the servlet mapping /* could not be found.
0000112c DeployedAppli W   WSVR0206E: Module, TestWS.war, of application, TestWS_war.ear/deployments/TestWS_war, 
failed to start
0000112c ApplicationMg W   WSVR0101W: An error occurred starting, TestWS_war
0000112c ApplicationMg A   WSVR0217I: Stopping application: TestWS_war
0000112c ApplicationMg A   WSVR0220I: Application stopped: TestWS_war
0000112c CompositionUn E   WSVR0194E: Composition unit WebSphere:cuname=TestWS_war in BLA 
WebSphere:blaname=TestWS_war failed to start.
0000112c MBeanHelper   E   Could not invoke an operation on object: 
WebSphere:name=ApplicationManager,process=server1,platform=proxy,node=svrNode01,
version=8.5.5.0,type=ApplicationManager,mbeanIdentifier=ApplicationManager,
cell=svrNode01Cell,spec=1.0 
because of an mbean exception: com.ibm.ws.exception.RuntimeWarning: 
SRVE0303E: Servlet name for the servlet mapping /* could not be found.

I have tried both Class loading options Parent First and Parent Last but to no avail.

Answer

It’s giving the error that “org.glassfish.jersey.servlet.ServletContainer” is missing in the Class path. Because of which the application is not starting.

See the version of Jersey that is compatible with WAS 8.5.5? (I think it’s Jersey 1.x). The corresponding library needs to be used.

<servlet>
    <servlet-name>javax.ws.rs.core.Application</servlet-name>
</servlet>
<servlet-mapping>
  <servlet-name>javax.ws.rs.core.Application</servlet-name>
  <url-pattern>/rest/*</url-pattern>
</servlet-mapping>
Advertisement