[jboss-jira] [JBoss JIRA] Created: (AS7-1349) JAX-RS sub resources broken

Jozef Hartinger (JIRA) jira-events at lists.jboss.org
Wed Jul 20 07:22:23 EDT 2011


JAX-RS sub resources broken
---------------------------

                 Key: AS7-1349
                 URL: https://issues.jboss.org/browse/AS7-1349
             Project: Application Server 7
          Issue Type: Bug
          Components: Web Services
    Affects Versions: 7.0.0.Final
            Reporter: Jozef Hartinger
            Assignee: Stuart Douglas
            Priority: Critical
             Fix For: 7.0.1.Final


Having a root resource class

@Path("person")
public class PeopleResource {

    @Path("{name}")
    public PersonResource findPerson(@PathParam("name") String name)
    {
        return new PersonResource(name);
    }
}

and a sub resource class

public class PersonResource {

    private String name;

    public PersonResource(String name) {
        this.name = name;
    }

    @GET
    public String getName()
    {
        return name;
    }
    
    @GET
    @Path("/address")
    public String getClassName()
    {
        return name + "'s address is unknown.";
    }
}

The application fails with the following exception. Seems like during scanning the subresource is identified as a root resource (although it is not a root resource). Subsequently, RESTEasy's validation fails.

javax.servlet.ServletException: Servlet.init() for servlet org.jboss.resteasy.cdi.test.MyApplication threw exception
	org.jboss.as.web.NamingValve.invoke(NamingValve.java:57)
	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:362)
	org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877)
	org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:667)
	org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:951)
	java.lang.Thread.run(Thread.java:662)

root cause

java.lang.RuntimeException: Class is not a root resource.  It, or one of its interfaces must be annotated with @Path: org.jboss.resteasy.cdi.test.Subresource implements:  java.io.Serializable
	org.jboss.resteasy.core.ResourceMethodRegistry.addResourceFactory(ResourceMethodRegistry.java:104)
	org.jboss.resteasy.core.ResourceMethodRegistry.addResourceFactory(ResourceMethodRegistry.java:83)
	org.jboss.resteasy.core.ResourceMethodRegistry.addPerRequestResource(ResourceMethodRegistry.java:72)
	org.jboss.resteasy.spi.ResteasyDeployment.registration(ResteasyDeployment.java:367)
	org.jboss.resteasy.spi.ResteasyDeployment.start(ResteasyDeployment.java:225)
	org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.init(ServletContainerDispatcher.java:67)
	org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.init(HttpServletDispatcher.java:36)
	org.jboss.as.web.NamingValve.invoke(NamingValve.java:57)
	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:362)
	org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877)
	org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:667)
	org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:951)
	java.lang.Thread.run(Thread.java:662)



--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the jboss-jira mailing list