泽西停止使用未找到的InjectionManagerFactory [英] Jersey stopped working with InjectionManagerFactory not found
问题描述
我在 tomcat 8.5.11
中运行我的 jersey API
时收到了以下错误,导致我的API停止 - :
$ b
HTTP状态500 - Servlet.init()用于servlet Jersey REST服务抛出
异常
类型异常报告
message servlet.init()for servlet Jersey REST服务抛出异常
描述服务器遇到一个内部错误,它阻止
履行此请求。
异常
'p> javax.servlet.ServletException:Servlet.init()进行的servlet泽西REST
服务抛出异常
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:474)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624)
组织。 apache.catalina.conne ctor.CoyoteAdapter.service(CoyoteAdapter.java:349)
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:783)
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight。 org.apache.tomcat.util.net.NioEndpoint $ SocketProcessor.doRun(NioEndpoint.java:
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.apache.tomcat.util.threads.TaskThread $ WrappingRunnable.run(TaskThread.java:61)
java。 lang.Thread.run(Thread.java:745)
根本原因
java.lang.IllegalStateException:未找到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.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349)
org.apache.coyo te.http11.Http11Processor.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.run( SocketProcessorBase.java:49)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
$ java.util.concurrent.ThreadPoolExecutor中Worker.run(ThreadPoolExecutor.java:617)
org.apache.tomcat.util.threads.TaskThread $ WrappingRunnable.run(TaskThread.java:61)
java.lang.Thread.run(Thread.java:745)
使用 gradle
构建应用程序,具有以下依赖关系:
依赖关系{
compile(
// REST
org.glassfish.jersey.containers:jersey -container-servlet:2. +,
javax.servlet:javax.servlet-api:4. +,
// REST令牌
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. +
)}
这下载球衣-common-2.26-b04.jar
,其中包含 / org / glassfish / jersey / internal / inject / InjectionManagerFactory
下的缺失类。 jar文件被部署到 WEB-INF / lib
$下的 tomcat
文件夹中b $ b
这里可能有什么问题? gradle
脚本在过去几个月使用相同的 tomcat
版本。
我有同样的问题,在降级到三月部署的版本(2.26-b03)后,一切恢复正常,希望它有帮助。 b
I am receiving below error while running my jersey API
in tomcat 8.5.11
which is causing my API to stop -:
HTTP Status 500 - Servlet.init() for servlet Jersey REST Service threw exception
type Exception report
message Servlet.init() for servlet Jersey REST Service threw exception
description The server encountered an internal error that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: Servlet.init() for servlet Jersey REST Service threw exception org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:474) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349) org.apache.coyote.http11.Http11Processor.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.run(SocketProcessorBase.java:49) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) java.lang.Thread.run(Thread.java:745)
root cause
java.lang.IllegalStateException: InjectionManagerFactory not found. 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.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349) org.apache.coyote.http11.Http11Processor.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.run(SocketProcessorBase.java:49) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) java.lang.Thread.run(Thread.java:745)
The application is build with the following dependencies with 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.+"
) }
This downloads jersey-common-2.26-b04.jar
which contains the missing class under /org/glassfish/jersey/internal/inject/InjectionManagerFactory
. The jar file is deployed into the tomcat
folder under WEB-INF/lib
What can be wrong here? The gradle
script worked the last few month with the same tomcat
version.
I have the same problem, after downgrading to the version deployed in march (2.26-b03) everything is back to normal, hope it helps
这篇关于泽西停止使用未找到的InjectionManagerFactory的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!