Jersey funktioniert nicht mehr mit InjectionManagerFactory nicht gefunden
Ich erhalte folgende Fehlermeldung beim ausführen meines jersey API
im tomcat 8.5.11
was verursacht meine API zu stoppen -:
HTTP Status 500 - Servlet.init() servlet-Jersey-REST-Dienst warf
Ausnahmetype Exception report
Nachricht Servlet.init() servlet-Jersey-REST-Dienst warf Ausnahme
Beschreibung Der server hat einen internen Fehler, der verhinderte, dass es
von der Erfüllung dieser Anforderung.Ausnahme
javax.- servlet.ServletException: Servlet.init() servlet-Jersey REST
Service warf Ausnahme
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:474)
org.apache.catalina.Ventile.ErrorReportValve.invoke(ErrorReportValve.java:79)
org.apache.catalina.Ventile.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624)
org.apache.catalina.- Anschluss.CoyoteAdapter.service(CoyoteAdapter.java:349)
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:783)
org.apache.coyote.AbstractProcessorLight.Prozess(AbstractProcessorLight.java:66)
org.apache.coyote.AbstractProtocol$ConnectionHandler.Prozess(AbstractProtocol.java:798)
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1434)
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
java.util.gleichzeitige.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
java.util.gleichzeitige.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
java.lang.Thread.run(Thread.java:745)Ursache
java.lang.IllegalStateException: InjectionManagerFactory nicht gefunden.
org.glassfish.jersey.intern.injizieren.Die Injektionen.lookupInjectionManagerFactory(Injektionen.java:97)
org.glassfish.jersey.intern.injizieren.Die Injektionen.createInjectionManager(Injektionen.java:89)
org.glassfish.jersey.server.ApplicationHandler.(ApplicationHandler.java:282)
org.glassfish.jersey.- servlet.WebComponent.(WebComponent.java:335)
org.glassfish.jersey.- servlet.ServletContainer.init(ServletContainer.java:178)
org.glassfish.jersey.- servlet.ServletContainer.init(ServletContainer.java:370)
javax.- servlet.GenericServlet.init(GenericServlet.java:158)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:474)
org.apache.catalina.Ventile.ErrorReportValve.invoke(ErrorReportValve.java:79)
org.apache.catalina.Ventile.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624)
org.apache.catalina.- Anschluss.CoyoteAdapter.service(CoyoteAdapter.java:349)
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:783)
org.apache.coyote.AbstractProcessorLight.Prozess(AbstractProcessorLight.java:66)
org.apache.coyote.AbstractProtocol$ConnectionHandler.Prozess(AbstractProtocol.java:798)
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1434)
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
java.util.gleichzeitige.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
java.util.gleichzeitige.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
java.lang.Thread.run(Thread.java:745)
Die Anwendung aufgebaut ist, mit den folgenden Abhängigkeiten mit gradle
:
dependencies {
compile (
//REST
"org.glassfish.jersey.containers:jersey-container-servlet:2.+",
"javax.servlet:javax.servlet-api:4.+",
//REST Token
"org.bitbucket.b_c:jose4j:0.+",
//MongoDB
"org.hibernate.ogm:hibernate-ogm-bom:5.+",
"org.hibernate.ogm:hibernate-ogm-infinispan:5.+",
"org.hibernate.javax.persistence:hibernate-jpa-2.1-api:1.+",
"org.jboss.spec.javax.transaction:jboss-transaction-api_1.2_spec:1.+",
"org.jboss.narayana.jta:narayana-jta:5.+",
"org.jboss:jboss-transaction-spi:7.+",
"log4j:log4j:1.+",
"org.hibernate.ogm:hibernate-ogm-mongodb:5.+",
"org.bouncycastle:bcprov-jdk15on:1.+"
) }
Diese downloads jersey-common-2.26-b04.jar
enthält die fehlende Klasse unter /org/glassfish/jersey/internal/inject/InjectionManagerFactory
. Die jar-Datei bereitgestellt, in der tomcat
Ordner unter WEB-INF/lib
Was kann hier falsch sein? Die gradle
Skript gearbeitet, das letzten Monat mit dem gleichen tomcat
version.
InformationsquelleAutor der Frage gregor | 2017-05-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich habe das gleiche problem, nach einem Downgrade auf die version bereitgestellt im März (2.26-b03) ist alles wieder normal, hoffe, es hilft
InformationsquelleAutor der Antwort Roman Kesler
Hinzufügen dieser Abhängigkeit:
vgl. https://stackoverflow.com/a/44536542/1070215
InformationsquelleAutor der Antwort cthiebaud
Jersey 2.26 und neuere sind nicht rückwärts kompatibel mit älteren Versionen. Der Grund, der angegeben wurde, in der release notes:
Ab jetzt sollte man sich die folgenden Abhängigkeiten:
Maven
Gradle
InformationsquelleAutor der Antwort wypieprz
Wählen Sie die DI zu injizieren Zeug in Jersey:
Frühling 4:
Frühjahr 3:
HK2:
InformationsquelleAutor der Antwort broc.seib
Downgrade der jersey-version
in pom.xml ändern Sie den tag
2.26-b04
zu
2.26-b03
InformationsquelleAutor der Antwort Vivek Ranjan
Ich habe das gleiche problem. Ich habe den neuesten jersey-hk2 Abhängigkeit und es funktioniert wie ein Charme.
InformationsquelleAutor der Antwort Julez Jupiter
Nur so konnte ich lösen es war über:
org.glassfish.jersey.Kern
jersey-server
${jersey-2-version}
So, nur wenn ich Hinzugefügt
jersey-container-servlet
undjersey-hk2
würde es ohne Fehler ausgeführtInformationsquelleAutor der Antwort Johannes Jander
Scheint es, das funktioniert nicht mit 2.26. Entweder ein downgrade auf eine version oder fügen Sie Folgendes in Ihre pom :
InformationsquelleAutor der Antwort sunil bhardwaj
Soweit ich sehen kann Abhängigkeiten haben sich geändert zwischen 2.26-b03 und 2.26-b04 (HK2 wurde verschoben aus kompilieren, um testCompile)... es gibt vielleicht einige Veränderung in der jersey Abhängigkeiten, die noch nicht abgeschlossen wurde (oder die dazu führen, dass ein Fehler).
Jedoch, jetzt die einfache Lösung ist, zu kleben, zu einer älteren version 🙂
InformationsquelleAutor der Antwort Nikolaus Krismer
Ja, es ist von der neuesten Version von Freitag, 19. Mai. Ich habe gerade meine version in den Maven zu einem älteren, und es funktioniert wieder perfekt.
InformationsquelleAutor der Antwort SirMartin
Hier ist die neue Abhängigkeit (August 2017)
InformationsquelleAutor der Antwort Ricardo Rossini
Ich hatte das gleiche Problem mit jersey version 2.26. Ich verwendete die ältere version(v.2.16) und jetzt seine arbeiten gut.
InformationsquelleAutor der Antwort Vishal Sharma