Otrzymuję poniższy błąd podczas uruchamiania interfejsu Jersey API w Tomcat 8.5.11, który powoduje zatrzymanie mojego interfejsu API:
Status HTTP 500 - Servlet.init () dla serwletu Jersey Usługa REST zgłosiła wyjątek
wpisz Raport wyjątków
komunikat Servlet.init () dla serwletu Jersey Usługa REST zgłosił wyjątek
opis Serwer napotkał błąd wewnętrzny, który uniemożliwił mu realizację tego żądania.
wyjątek
javax.servlet.ServletException: Servlet.init () dla serwletu Usługa REST na Jersey zgłosiła wyjątek org.apache.catalina.authenticator.AuthenticatorBase.invoke (AuthenticatorBase.java:474) org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.invoke (ErrorReportValve.invoke. java: 79) org.apache.catalina.valves.AbstractAccessLogValve.invoke (AbstractAccessLogValve.java:624) org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:349) org.apache.coyote.http11.Htt. service (Http11Processor.java:783) org.apache.coyote.AbstractProcessorLight.process (AbstractProcessorLight.java:66) org.apache.coyote.AbstractProtocol $ ConnectionHandler.process (AbstractProtocol.java:798) org.apil.tomcat.ut net.NioEndpoint $ SocketProcessor.doRun (NioEndpoint.java:1434) org.apache.tomcat.util.net.SocketProcessorBase.run (SocketProcessorBase.java:49) java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1142) java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:617) org.aputache.tomcat. Threads.TaskThread $ WrappingRunnable.run (TaskThread.java:61) java.lang.Thread.run (Thread.java:745)
pierwotna przyczyna
java.lang.IllegalStateException: nie znaleziono InjectionManagerFactory. org.glassfish.jersey.internal.inject.Injections.lookupInjectionManagerFactory (Injections.java:97) org.glassfish.jersey.internal.inject.Injections.createInjectionManager (Injections.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.apacheves.catalina. ErrorReportValve.invoke (ErrorReportValve.java:79) org.apache.catalina.valves.
Aplikacja jest zbudowana z następującymi zależnościami w 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.+"
) }
Ten plik do pobrania jersey-common-2.26-b04.jar
zawiera brakującą klasę w ramach /org/glassfish/jersey/internal/inject/InjectionManagerFactory
. Plik jar jest wdrażany w folderze Tomcat wWEB-INF/lib
Co tu może być nie tak? Skrypt gradle działał przez ostatnie kilka miesięcy z tą samą wersją Tomcata.