Recibo el siguiente error al ejecutar mi API de Jersey en Tomcat 8.5.11, lo que hace que mi API se detenga:
HTTP Status 500 - Servlet.init () para servlet Jersey REST Service lanzó una excepción
tipo Informe de excepción
mensaje Servlet.init () para servlet Jersey REST Service lanzó excepción
descripción El servidor encontró un error interno que le impidió cumplir con esta solicitud.
excepción
javax.servlet.ServletException: Servlet.init () para el servlet Jersey REST Service lanzó una excepción org.apache.catalina.authenticator.AuthenticatorBase.invoke (AuthenticatorBase.java:474) org.apache.catalina.valves.ErrorReportValve.inport.Valve. java: 79) org.apache.catalina.valves.AbstractAccessLogValve.invoke (AbstractAccessLogValve.java:624) org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:349) org.apache.coyote.http. http service (Http11Processor.java:783) org.apache.coyote.AbstractProcessorLight.process (AbstractProcessorLight.java:66) org.apache.coyote.AbstractProtocol $ ConnectionHandler.process (AbstractProtocol.java:798) org.apache.tomcat.util. net.NioEndpoint $ SocketProcessor.doRun (NioEndpoint.java:1434) org.apache.tomcat.util.net.SocketProcessorBase.ejecutar (SocketProcessorBase.java:49) java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1142) java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:617) org.apache.tom. threads.TaskThread $ WrappingRunnable.run (TaskThread.java:61) java.lang.Thread.run (Thread.java:745)
causa principal
java.lang.IllegalStateException: InjectionManagerFactory no encontrado. 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.japa:47.). Org. ErrorReportValve.invoke (ErrorReportValve.java:79) org.apache.catalina.valves.
La aplicación está construida con las siguientes dependencias con 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.+"
) }
Esta descarga jersey-common-2.26-b04.jar
que contiene la clase que falta en /org/glassfish/jersey/internal/inject/InjectionManagerFactory
. El archivo jar se implementa en la carpeta Tomcat enWEB-INF/lib
¿Qué puede estar mal aquí? El script de gradle funcionó los últimos meses con la misma versión de Tomcat.