Using RESTEasy with EAP 5.1.0 I get exception saying resource could not be found

Solution Verified - Updated -

Environment

  • JBoss Enterprise Application Platform (EAP)
    • 5.1.0
  • RESTEasy 1.2

Issue

We followed the steps in the user guide [1], but always get the same error when implementing a REST-based webservice using RESTEasy.

2011-05-09 12:24:13,795 DEBUG  [org.jboss.resteasy.core.SynchronousDispatcher] (http-machine.abc.at:8080) - Failed executing GET /examplename/get/example
org.jboss.resteasy.spi.NotFoundException: Could not find resource for relative : /examplename/get/example of full path: http://machinename.abc.at:8080/AppName/examplename/get/example
     at org.jboss.resteasy.core.registry.RootSegment.matchChildren(RootSegment.java:358)
     at org.jboss.resteasy.core.registry.RootSegment.matchRoot(RootSegment.java:372)
     at org.jboss.resteasy.core.registry.RootSegment.matchRoot(RootSegment.java:365)
     at org.jboss.resteasy.core.ResourceMethodRegistry.getResourceInvoker(ResourceMethodRegistry.java:256)
     at org.jboss.resteasy.core.SynchronousDispatcher.getInvoker(SynchronousDispatcher.java:129)
     at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:110)
     at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:217)
     at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:159)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
     at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
     at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:183)
     at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525)
     at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:95)
     at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
     at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
     at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
     at org.apache.catalina.valves.RequestDumperValve.invoke(RequestDumperValve.java:151)
     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
     at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
     at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)
     at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:451)
     at java.lang.Thread.run(Thread.java:619)

Resolution

In your web.xml move the Application param to a context-param. EAP version does not support javax.ws.rs.core.Application as a servlet init-param. This has been fixed in later version of RESTEasy.

Remove from <servlet> section of the web.xml

<init-param>
    <param-name>javax.ws.rs.Application</param-name>
    <param-value>org.jboss.support.webservice.AppName</param-value>
</init-param>

Add to top of web.xml

<context-param>

            <param-name>javax.ws.rs.core.Application</param-name>

            <param-value>org.jboss.support.webservice.AppName</param-value>

</context-param>
[1] http://docs.redhat.com/docs/en-US/JBoss_Enterprise_Application_Platform/5/html-single/RESTEasy_Reference_Guide/index.html

This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.

Comments