2009-04-19 2 views
3

Ich habe Jersey auf Tomcat eingesetzt und alles funktioniert einwandfrei (wenn ich den com.sun.jersey.spi.container.servlet.ServletContainer verwende), aber sobald ich es in com.sun.jersey.spi ändere. spring.container.servlet.SpringServlet (nach allen Tutorials, die ich finden kann), erhalte ich eine böse Ausnahme:Jersey in Tomcat + Spring-Umgebung kann ComponentProvider nicht finden. Warum?

Apr 19, 2009 5:07:35 PM org.apache.catalina.core.ApplicationContext log 
INFO: Marking servlet ServletAdaptor as unavailable 
Apr 19, 2009 5:07:35 PM org.apache.catalina.core.StandardContext loadOnStartup 
SEVERE: Servlet /myservice threw load() exception 
java.lang.ClassNotFoundException: com.sun.jersey.spi.service.ComponentProvider 

Jede Idee, was Paket/Verteilung es wohnen kann? Was vermisse ich?

Vielleicht brauche ich es überhaupt nicht. Ich versuche sicherzustellen, dass, wenn meine Ressourcenklasse geladen ist, sie mit dem Rest der Beans, von denen sie abhängt, automatisch initialisiert und initialisiert wird. Kann es anders gemacht werden?

Danke.

Antwort

1

Die com.sun.jersey.spi.service.ComponentProvider-Schnittstelle ist Teil der Trikot-Core JAR, so dass es seltsam ist, dass Sie diese Ausnahme bekommen.

Stellen Sie sicher, dass Sie die gleiche Version der Jersey-Bibliotheken verwenden (d. H. Sie verwenden Jersey 1.0.1-Bibliotheken, nicht 1.0 und 1.0.1, da die Spring-Klassen zwischen diesen beiden Versionen umbenannt wurden).

auch sicherstellen, dass Sie einen Context in Ihrem web.xml haben etwa so:

<listener> 
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
</listener> 
+0

Ich habe alle in Konflikt stehende Version JAR-Dateien entfernt und nur von 1.0.3 readded - die Ausnahme verschwunden. Auch meine JSON-Funktionalität wurde auf ein Minimum reduziert, aber ich denke, das ist ein separates Problem. – IgorM

+1

JSON-Unterstützung wurde kürzlich in Jersey geändert. Stellen Sie sicher, dass Sie für die Verwendung von Jackson für die JSON-Unterstützung konfiguriert sind und über die erforderlichen Bibliotheken verfügen. – deverton

+0

Zu der Verwirrung kommt hinzu, dass, wenn Sie in Jersey/Maven repository in com/sun/jersey schauen, es ein Spring jar bei 1.0 gibt, aber Sie müssen unter com/sun/jersey/contribs nach der passenden Version suchen (zB in meinem Fall 1.5 für alle Gläser - Core, Server & Spring – Damo

Verwandte Themen