java.lang.NoSuchMethodError:org.glassfish.hk2.api.ServiceLocatorFactory.create

java.lang.NoSuchMethodError:org.glassfish.hk2.api.ServiceLocatorFactory.create,java,maven,jersey-2.0,tomcat8,Java,Maven,Jersey 2.0,Tomcat8,错误: pom.xml java.lang.NoSuchMethodError: org.glassfish.hk2.api.ServiceLocatorFactory.create(Ljava/lang/String;Lorg/glassfish/hk2/api/ServiceLocator;Lorg/glassfish/hk2/extension/ServiceLocatorGenerator;Lorg/glassfish/hk2/api/ServiceLocatorFactory$Crea

错误:

pom.xml

java.lang.NoSuchMethodError: org.glassfish.hk2.api.ServiceLocatorFactory.create(Ljava/lang/String;Lorg/glassfish/hk2/api/ServiceLocator;Lorg/glassfish/hk2/extension/ServiceLocatorGenerator;Lorg/glassfish/hk2/api/ServiceLocatorFactory$CreatePolicy;)Lorg/glassfish/hk2/api/ServiceLocator;
    org.glassfish.jersey.internal.inject.Injections._createLocator(Injections.java:138)

org.glassfish.jersey.containers
jersey容器servlet
2.22.1
web.xml

<dependency>
  <groupId>org.glassfish.jersey.containers</groupId>
  <artifactId>jersey-container-servlet</artifactId>
  <version>2.22.1</version>
</dependency>

泽西塞尔维特酒店
org.glassfish.jersey.servlet.ServletContainer
jersey.config.server.provider.packages
...
1.
泽西塞尔维特酒店
/刺激/*

欢迎任何评论。谢谢

您需要将
HK2API
依赖项导入您的
pom.xml
您可以在下面找到它: 然后删除
.m2
目录,清理并重建项目,更新项目并运行它

  <servlet>
    <servlet-name>jersey-serlvet</servlet-name>
    <servlet-class>
      org.glassfish.jersey.servlet.ServletContainer
    </servlet-class>
    <init-param>
      <param-name>jersey.config.server.provider.packages</param-name>
      <param-value>...</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>

  <servlet-mapping>
    <servlet-name>jersey-serlvet</servlet-name>
    <url-pattern>/prods/*</url-pattern>
  </servlet-mapping>

org.glassfish.hk2
香港2号空气污染指数
2.5.0-b42

我最近遇到了一个类似的问题,并试图检查所有jar的依赖关系:)但是,对于maven项目有一个简单的解决方案。也许它能解决你的问题。 添加这个maven插件

<dependency>
    <groupId>org.glassfish.hk2</groupId>
    <artifactId>hk2-api</artifactId>
    <version>2.5.0-b42</version>
</dependency>

org.apache.maven.plugins
maven enforcer插件
3.0.0-M3
运行这个


mvn enforcer:enforce

NoSuchMethod错误很可能是由于所涉及库的版本冲突造成的。因此,调用org.glassfish.hk2.api.ServiceLocatorFactory.create的库与使用过的glassfish版本不兼容。我使用了一些类似的xml文件和here@peeskillet,谢谢。我是从新泽西到雄猫的。我可以问一下
org.glassfish.jersey.containers
tomcat
之间的关系吗?为什么我们需要
org.glassfish.jersey.containers
当我运行
mvn clean package
并将
war
部署到tomcat的
webapps
文件夹时?您的pom.xml中是否有
hk2 api
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>3.0.0-M3</version>
<configuration>
    <rules>
        <dependencyConvergence />
    </rules>
</configuration>
</plugin>