Jersey application can't scan JAX-RS resources when deploying it to EAP 6

Solution Verified - Updated -

Issue

  • Have configured Jersey to scan JAX-RS resources in a specific package by adding the following init parameter to Jersey Servlet declaration in web.xml:
<servlet>
    <servlet-name>JerseyWebApplication</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>com.example.resources</param-value>
    </init-param>
</servlet>  

When I deploy it to EAP 6 I have the following error:

JBWEB000289: Servlet ServletAdaptor threw load() exception: com.sun.jersey.core.spi.scanning.ScannerException: The URI scheme vfs of the URI vfs:/your/resource/class/url 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
  • Using packages to scan the resources classes are not having any effect. Resources aren't getting registered. My Application class looks like the following:
@ApplicationPath("resources")
public class MyApplication extends ResourceConfig {
    public MyApplication() {
        packages("com.example.rest;org.bar.rest");
    }
}

If I register the resource manually using the register method it works.

Environment

  • Red Hat JBoss Enterprise Application Platform (EAP)
    • 6.x
    • Jersey 2.7, 2.8, 2.9, 2.10, 2.11, 2.12

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase of over 48,000 articles and solutions.

Current Customers and Partners

Log in for full access

Log In
Close

Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.