user3008837
user3008837

Reputation: 1

Jersey Web Service is not working in Gatein 3.6 with JBOSS AS7

I have created a sample jersey server in my gatein 3.6 (with Jboss AS7). Here follows the steps for creating jersey server.

I have added the following lines of code in web.xml file.



    <servlet>
          <servlet-name>Jersey REST Service</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>de.vogella.jersey.first</param-value>
           </init-param>
           <load-on-startup>1</load-on-startup>
      </servlet>
      <servlet-mapping>
           <servlet-name>Jersey REST Service</servlet-name>
           <url-pattern>/rest/*</url-pattern>
      </servlet-mapping>

The class file is


    package de.vogella.jersey.first;

    import javax.ws.rs.GET;
    import javax.ws.rs.Path;
    import javax.ws.rs.Produces;
    import javax.ws.rs.core.MediaType;

    // Plain old Java Object it does not extend as class or implements
    // an interface

    // The class registers its methods for the HTTP GET request using the @GET annotation.
    // Using the @Produces annotation, it defines that it can deliver several MIME types,
    // text, XML and HTML.

    // The browser requests per default the HTML MIME type.

    //Sets the path to base URL + /hello
    @Path("/hello")
    public class Hello {

      // This method is called if TEXT_PLAIN is request
      @GET
      @Produces(MediaType.TEXT_PLAIN)
      public String sayPlainTextHello() {
       return "Hello Jersey";
      }

      // This method is called if XML is request
      @GET
      @Produces(MediaType.TEXT_XML)
      public String sayXMLHello() {
       return "" + " Hello Jersey" + "";
      }

      // This method is called if HTML is request
      @GET
      @Produces(MediaType.TEXT_HTML)
      public String sayHtmlHello() {
       return " " + "" + "Hello Jersey" + ""
      + "" + "Hello Jersey" + "" + " ";
      }

    }

But unfortunately i got an exception while starting the server

17:17:22,649 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/cisms]] (MSC service thread 1-6) StandardWrapper.Throwable: com.sun.jersey.core.spi.scanning.ScannerException: The URI scheme vfs of the URI vfs:/E:/BMITDevelopment/GateIn-3.6.0.Final-jbossas7/standalone/deployments/cisms.war/WEB-INF/classes/com/radiant/cisms/workFlow/core/ is not supported. Package scanning deployment is not supported for such URIs. Try using a different deployment mechanism such as explicitly declaring root resource and provider classes using an extension of javax.ws.rs.core.Application at com.sun.jersey.core.spi.scanning.PackageNamesScanner.scan(PackageNamesScanner.java:225) [jersey-bundle-1.4.jar:1.4] at com.sun.jersey.core.spi.scanning.PackageNamesScanner.scan(PackageNamesScanner.java:139) [jersey-bundle-1.4.jar:1.4] at com.sun.jersey.api.core.ScanningResourceConfig.init(ScanningResourceConfig.java:78) [jersey-bundle-1.4.jar:1.4] at com.sun.jersey.api.core.PackagesResourceConfig.init(PackagesResourceConfig.java:116) [jersey-bundle-1.4.jar:1.4] at com.sun.jersey.api.core.PackagesResourceConfig.(PackagesResourceConfig.java:81) [jersey-bundle-1.4.jar:1.4] at com.sun.jersey.api.core.PackagesResourceConfig.(PackagesResourceConfig.java:92) [jersey-bundle-1.4.jar:1.4] at com.sun.jersey.spi.container.servlet.WebComponent.createResourceConfig(WebComponent.java:677) [jersey-bundle-1.4.jar:1.4] at com.sun.jersey.spi.container.servlet.WebComponent.createResourceConfig(WebComponent.java:655) [jersey-bundle-1.4.jar:1.4] at com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java:206) [jersey-bundle-1.4.jar:1.4] at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:342) [jersey-bundle-1.4.jar:1.4] at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:516) [jersey-bundle-1.4.jar:1.4] at javax.servlet.GenericServlet.init(GenericServlet.java:242) [jboss-servlet-api_3.0_spec-1.0.0.Final.jar:1.0.0.Final] at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1202) [jbossweb-7.0.13.Final.jar:] at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1102) [jbossweb-7.0.13.Final.jar:] at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3655) [jbossweb-7.0.13.Final.jar:] at org.apache.catalina.core.StandardContext.start(StandardContext.java:3873) [jbossweb-7.0.13.Final.jar:] at org.jboss.as.web.deployment.WebDeploymentService.start(WebDeploymentService.java:90) [jboss-as-web-7.1.1.Final.jar:7.1.1.Final] at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [rt.jar:1.6.0_30] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [rt.jar:1.6.0_30] at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_30]

17:17:22,665 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/cisms]] (MSC service thread 1-6) Servlet /cisms threw load() exception: com.sun.jersey.core.spi.scanning.ScannerException: The URI scheme vfs of the URI vfs:/E:/BMITDevelopment/GateIn-3.6.0.Final-jbossas7/standalone/deployments/cisms.war/WEB-INF/classes/com/radiant/cisms/workFlow/core/ is not supported. Package scanning deployment is not supported for such URIs. Try using a different deployment mechanism such as explicitly declaring root resource and provider classes using an extension of javax.ws.rs.core.Application at com.sun.jersey.core.spi.scanning.PackageNamesScanner.scan(PackageNamesScanner.java:225) [jersey-bundle-1.4.jar:1.4] at com.sun.jersey.core.spi.scanning.PackageNamesScanner.scan(PackageNamesScanner.java:139) [jersey-bundle-1.4.jar:1.4] at com.sun.jersey.api.core.ScanningResourceConfig.init(ScanningResourceConfig.java:78) [jersey-bundle-1.4.jar:1.4] at com.sun.jersey.api.core.PackagesResourceConfig.init(PackagesResourceConfig.java:116) [jersey-bundle-1.4.jar:1.4] at com.sun.jersey.api.core.PackagesResourceConfig.(PackagesResourceConfig.java:81) [jersey-bundle-1.4.jar:1.4] at com.sun.jersey.api.core.PackagesResourceConfig.(PackagesResourceConfig.java:92) [jersey-bundle-1.4.jar:1.4] at com.sun.jersey.spi.container.servlet.WebComponent.createResourceConfig(WebComponent.java:677) [jersey-bundle-1.4.jar:1.4] at com.sun.jersey.spi.container.servlet.WebComponent.createResourceConfig(WebComponent.java:655) [jersey-bundle-1.4.jar:1.4] at com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java:206) [jersey-bundle-1.4.jar:1.4] at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:342) [jersey-bundle-1.4.jar:1.4] at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:516) [jersey-bundle-1.4.jar:1.4] at javax.servlet.GenericServlet.init(GenericServlet.java:242) [jboss-servlet-api_3.0_spec-1.0.0.Final.jar:1.0.0.Final] at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1202) [jbossweb-7.0.13.Final.jar:] at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1102) [jbossweb-7.0.13.Final.jar:] at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3655) [jbossweb-7.0.13.Final.jar:] at org.apache.catalina.core.StandardContext.start(StandardContext.java:3873) [jbossweb-7.0.13.Final.jar:] at org.jboss.as.web.deployment.WebDeploymentService.start(WebDeploymentService.java:90) [jboss-as-web-7.1.1.Final.jar:7.1.1.Final] at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [rt.jar:1.6.0_30] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [rt.jar:1.6.0_30] at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_30]

Thanks in Advance Josny

Upvotes: 0

Views: 1642

Answers (2)

vbranden
vbranden

Reputation: 5996

I wrote a blog on this. It was answered in another forum but the summary is that you need to disable resteasy scanning in the web.xml and add a jboss-deployment-structure.xml file to META-INF

the 2 files should look something like this (per my example in the blog)

web.xml

    <?xml version="1.0" encoding="UTF-8"?>  
 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
      xmlns="http://java.sun.com/xml/ns/javaee"  
      xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"  
      id="WebApp_ID" version="3.0">  
      <display-name>hellows</display-name>  
      <servlet>  
           <servlet-name>hellows servlet</servlet-name>  
           <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>  
           <init-param>  
                <param-name>javax.ws.rs.Application</param-name>  
                <param-value>com.vbranden.HelloApplication</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>hellows servlet</servlet-name>  
           <url-pattern>/*</url-pattern>  
      </servlet-mapping>  
      <context-param>  
           <param-name>resteasy.scan</param-name>  
           <param-value>false</param-value>  
      </context-param>  
      <context-param>  
           <param-name>resteasy.scan.resources</param-name>  
           <param-value>false</param-value>  
      </context-param>  
      <context-param>  
           <param-name>resteasy.scan.providers</param-name>  
           <param-value>false</param-value>  
      </context-param>  
 </web-app>  

jboss-deployment-structure.xml (goes in META-INF)

<?xml version="1.0" encoding="UTF-8"?>  
 <jboss-deployment-structure>  
 <deployment>  
 <exclude-subsystems>  
  <subsystem name="resteasy" />  
 </exclude-subsystems>  
 <exclusions>  
  <module name="javaee.api" />  
  <module name="javax.ws.rs.api"/>  
  <module name="org.jboss.resteasy.resteasy-jaxrs" />  
 </exclusions>  
 <local-last value="true" />  
 </deployment>  
 </jboss-deployment-structure> 

full example here

http://blog.vbranden.com/2015/03/creating-jersey-webservice-in-gatein.html

Upvotes: 0

Dharmi
Dharmi

Reputation: 1516

I got this very issue when migrating the Jersey app from Tomcat to Wildfly 8 (JBossAS) with Jersey version 1.9. It got resolved when upgrading Jersey library version to 1.10.

<dependency>
    <groupId>com.sun.jersey</groupId>
    <artifactId>jersey-server</artifactId>
    <version>1.10</version>
</dependency>

Upvotes: 0

Related Questions