2017-08-14 16 views
0

エラー:java.lang.NoSuchMethodErrorの:org.glassfish.hk2.api.ServiceLocatorFactory.create

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) 

のpom.xml

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

web.xmlのどれ

<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> 

コメント歓迎。 とクリーン.m2ディレクトリを削除し、プロジェクトや更新プロジェクトを再構築し、それを実行します。おかげで

+0

NoSuchMethodErrorは、おそらく関連するライブラリのバージョンの競合によるものです。したがって、org.glassfish.hk2.api.ServiceLocatorFactory.createを呼び出すライブラリは、使用されるglassfishのバージョンと互換性がありません。 – Heri

+0

私はここでいくつかの同様のXMLファイルを使用しました。https://afsinka.wordpress.com/2015/12/27/restful-web-service-example-with-jersey-2-and-tomcat-8/ – BAE

+0

@peeskilletありがとう。私はジャージーと風刺鳥が初めてです。 'org.glassfish.jersey.containers'と' tomcat'の関係は何ですか?私が 'mvn clean package'を実行し、' war'をTomcatの 'webapps'フォールドにデプロイするときに' org.glassfish.jersey.containers'が必要な理由は? – BAE

答えて

0

はあなたのpom.xmlあなたは下にそれを見つけることができますへhk2-api依存する必要があります。

<dependency> 
    <groupId>org.glassfish.hk2</groupId> 
    <artifactId>hk2-api</artifactId> 
    <version>2.5.0-b42</version> 
</dependency> 
関連する問題