RESTEasy - Ressource-Klasse Registrieren konnte, wenn @Pfad ist Markiert
Ich bin mit RESTEasy 2.0.1.GA auf der Jboss-4.3.0.GA.
Die Schnittstelle, die meine Ressource-Klasse umgesetzt, sieht wie folgt aus:
@Path("/")
public interface CwindRestfulService {
@GET
@Path("accounts/{email}")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
public Account getAccountInfo(@PathParam("email") String email) throws Exception;
}
Wenn ich resteasy.scan=true web.xml es funktioniert gut. Aber sollte es falsch sein, mit spring-Kontext. So nun meine web.xml ist:
<web-app>
<display-name>Archetype RestEasy Web Application</display-name>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>WEB-INF/applicationContext.xml</param-value>
</context-param>
<context-param>
<param-name>resteasy.resources</param-name>
<param-value>com.cwind.rest.CwindRestfulServiceImpl</param-value>
</context-param>
<listener>
<listener-class>org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap</listener-class>
</listener>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>Resteasy</servlet-name>
<servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Resteasy</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>
Und ich habe diesen Fehler:
2014-02-20 18:10:23,303 ERROR [org.apache.catalina.core.ContainerBase] Exception sending context initialized event to listener instance of class org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap
java.lang.RuntimeException: Class is not a root resource. It, or one of its interfaces must be annotated with @Path: com.cwind.rest.CwindRestfulServiceImpl implements: com.cwind.rest.CwindRestfulService
Er vorgeschlagen, dass ich verpasst @Pfad, während tatsächlich wusste ich nicht. Aber wenn ich mir die Anmerkung, um die Ressource-Klasse es funktioniert. Ich gegoogelt und fand eine Lösung in http://pilhuhn.blogspot.com/2011/06/seemingly-common-resteasy-error-and.html. Es muss ein @ApplicationPath annotation. Jetzt ist mein interface ist in einem Dritten lib, so kann ich nicht ändern. Hat jemand einige Vorschläge? Vielen Dank im Voraus.
InformationsquelleAutor Cwind | 2014-02-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Scheint es, dass Sie sich noch nicht registriert haben, ein Resteasy bestimmten
SpringContextLoaderListener
. Dies ist erforderlich für den Frühling zu registrieren gescannt Ressource-Klassen mit Resteasy.Unten ist ein Beispiel web.xml Konfiguration (dieses verwendet annotation-Konfiguration, aber auch die Arbeit mit xml-Konfiguration):
Dann klicken Sie einfach mit Anmerkungen versehen Sie Ihre Ressource-Klassen für das Frühjahr entweder mit
@Component
oder@Named
wie unten gezeigt:InformationsquelleAutor gregwhitaker