当前位置: 首页 > 知识库问答 >
问题:

Jersey已停止使用未找到的InjectionManagerFactory

郏景澄
2023-03-14

类型异常报告

servlet Jersey REST服务的消息servlet.init()引发异常

说明服务器遇到内部错误,导致它无法完成此请求。

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.jersey.server.applicationhandler(applicationhandler.java:282)org.glassfish.jersey.servlet.webcomponent((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.49)java.util.concurrent.ThreadPoolExecutor.runworker

应用程序是通过以下与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.+"
    ) }

这将下载jersey-common-2.26-b04.jar,它包含/org/glassfish/jersey/internal/inject/injectionManagerFactory下缺少的类。jar文件被部署到web-inf/lib下的Tomcat文件夹中

这里会有什么问题?gradle脚本在过去几个月中使用了相同的Tomcat版本。

共有1个答案

蒋烨然
2023-03-14

添加此依赖项:

<dependency>
    <groupId>org.glassfish.jersey.inject</groupId>
    <artifactId>jersey-hk2</artifactId>
    <version>2.28</version>
</dependency>

参见https://stackoverflow.com/A/44536542/1070215

确保不要混合你的泽西依赖版本。这个答案说版本“2.28”,但使用任何版本你的其他泽西岛依赖版本。

 类似资料:
  • 嗨,我有个大问题, 我一直在创建一个自动化脚本,并在构建过程中对其进行测试。我已经完成了第109行,现在第64行已经开始失败。 这条线路之前已经工作了很多次,在没有任何真实信息帮助解决的情况下突然停止。 这是我使用xpath从中提取元素的代码 我使用以下代码使用xpath选择列表中的第一项 这行代码一整天都运行得很好,现在每次执行脚本都会失败。我现在得到一个错误,没有找到元素。 当我导航到页面并使

  • 在过去的几天里,我一直在使用这段代码,直到今天,它一直工作得很好,但由于某种原因,异步任务已经停止调用doInBackground方法。我尝试了这里建议的解决方案,Android SDK AsyncTask doInBackground没有运行(子类),但我得到了相同的结果。onPreExecute方法被调用,但我只剩下加载对话框。有没有人经历过类似的事情。我已经附上了我的代码副本。MyAsncT

  • 问题内容: 我一直在开发使用WSGI部署在Apache服务器上的Django Web应用程序,并且一切进展顺利。今天,我对应用程序进行了一些较小的更改,以尝试自定义内置的Django Admin接口,并且最初出现了语法错误(括号未封闭)。这意味着当我触摸并加载代码时(我的虚拟主机上的WSGI以守护程序模式运行),我的网站被内部服务器错误替换,因为WSGI遇到语法错误时就停止了。 因此,我更正了语法

  • 问题内容: 我在ECS服务器上运行docker-nginx。我的Nginx服务突然停止,因为其中一台服务器的proxy_path无法访问。错误如下: 我的配置文件如下: 配置文件中有很多服务器,即使一台服务器宕机,我也需要运行nginx。有什么办法可以解决? 任何解决此问题的建议将不胜感激。 问题答案: 包含以防止Nginx在您的站点关闭时崩溃,请包含一个resolver指令,如下所示: 警告!使

  • 我运行我的Android应用程序(基于Java),它可以工作。接下来,我添加到我的应用程序代码: FirebaseFirestore fdb=FirebaseFirestore。getInstance(); 这是我从Android官方网站上得到的代码https://firebase.google.com/docs/firestore/quickstart 应用程序运行,但接下来运行的设备显示消息“

  • 我正在从log4j1.x升级到log4j2,并将log4j.xml配置文件更新为一个新的log4j2.xml配置。我在运行maven,spring和Mule。 当运行一个测试maven构建时,log4j2.xml文件不会被拾取。但是,如果我重命名该文件log4j2-test.xml,它就会被拾取(例如,带有自定义PatternLayout的控制台记录器在第二种情况下可以正常工作,但在第一种情况下使