2

Getting this error why trying to deploy the war in weblogic

Caused By: weblogic.management.DeploymentException: [HTTP:101170]The servlet Web Rest Services is referenced in servlet-mapping /myrest/* but not defined in web.xml. at weblogic.servlet.internal.WebAppServletContext.verifyServletMappings(WebAppServletContext.java:1465) at weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:2809) at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1661) at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:822) at weblogic.application.internal.ExtensibleModuleWrapper$StartStateChange.next(ExtensibleModuleWrapper.java:360)

my web.xml:

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    version="3.0">
    <display-name>REST</display-name>
    <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
    <servlet>
        <servlet-name>Jersey Web Application</servlet-name>
        <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
        <init-param>
            <param-name>com.sun.jersey.config.property.packages</param-name>
            <param-value>rest.apis</param-value>
        </init-param>
        <init-param>
            <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
            <param-value>true</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>Web Rest Services</servlet-name>
        <url-pattern>/myrest/*</url-pattern>
    </servlet-mapping>
</web-app>

If required I can paste the code of rest resources but not sure it matters.

What worries me, can there be issue with weblogic?

Note: Recently app server was upgraded to weblogic 12.1.2

yuris
  • 1,109
  • 4
  • 19
  • 33
  • ` Jersey Web Application != Web Rest Services` – Paul Samsotha Apr 03 '17 at 14:30
  • you think the Name labels should match? will try it soon... – yuris Apr 03 '17 at 14:35
  • 1
    Yes, this is the reason for the error. You are using a servlet-mapping with no servlet attached. This is because the name is different. Whether not this will get you running, I am not sure. You may still have more problems – Paul Samsotha Apr 03 '17 at 14:36
  • man... checking the log of weblogic it seems it passed that point where it fails (it failed almost immediately) , it will take about 10 minutes,,, if it works you are a genius :) – yuris Apr 03 '17 at 14:40
  • :) you may write it a answer :) (will accept it tomorrow ) wasted 3 hours. Thanks – yuris Apr 03 '17 at 14:47

2 Answers2

3

<servlet-name --> Jersey Web Application != Web Rest Services

The <servlet-name> in the <servlet-mapping> should correspond to a <servlet-name> in a <servlet> definition. Hence the error

The servlet Web Rest Services is referenced in servlet-mapping /myrest/* but not defined in web.xml

Paul Samsotha
  • 205,037
  • 37
  • 486
  • 720
1

Try this configuration for your web.xml file:

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<display-name>NAME</display-name>
<servlet>
    <servlet-name>jersey-serlvet</servlet-name>
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
        <init-param>
           <param-name>jersey.config.server.provider.packages</param-name>
           <param-value>YOUR REST CLASS PACKAGE</param-value>
        </init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>jersey-serlvet</servlet-name>
        <url-pattern>/resources/*</url-pattern>
    </servlet-mapping>
</web-app>

And create an weblogic.xml file in the same folder (web-app\WEB-INF) like this:

<?xml version="1.0" encoding="UTF-8"?>
<weblogic-web-app xmlns="http://xmlns.oracle.com/weblogic/weblogic-web-app">
<library-ref>  
    <library-name>jax-rs</library-name>  
    <specification-version>2.0</specification-version>
    <implementation-version>2.5.1</implementation-version>  
    <exact-match>false</exact-match>
</library-ref>
<container-descriptor>
    <prefer-application-packages>
        <package-name>org.glassfish.jersey.media.*</package-name>
        <package-name>org.glassfish.jersey.client.*</package-name>
        <package-name>org.glassfish.jersey.servlet.*</package-name> 
        <package-name>org.glassfish.jersey.jaxb.internal.*</package-name>   
        <package-name>com.sun.research.ws.wadl.*</package-name>
        <package-name>org.glassfish.hk2.*</package-name>
        <package-name>org.jvnet.hk2.*</package-name>
        <package-name>jersey.repackaged.org.objectweb.asm.*</package-name>
        <package-name>org.objectweb.asm.*</package-name>
        <package-name>com.sun.ws.rs.ext.*</package-name>
        <package-name>org.aopalliance.*</package-name>
        <package-name>javax.annotation.*</package-name>
        <package-name>javax.inject.*</package-name>
        <package-name>javax.ws.rs.*</package-name>
        <package-name>jersey.repackaged.com.google.common.*</package-name>
        <package-name>javassist.*</package-name>
    </prefer-application-packages>
</container-descriptor>
<context-root>YOUR_ROOT</context-root>
</weblogic-web-app>
João Marcos
  • 3,872
  • 1
  • 19
  • 14