2016-10-15 6 views
1

したがって、Jersey 2.23.2を使用してJavaで小さな残りのAPIを構築しています。私は問題に遭遇しましたが、web.xmlファイルでサーブレットを適切に指定することができません。これは私のファイルがどのように見えるかです:ジャージ2.xに移行してサーブレットコンテナ例外が発生する

のpom.xml

<dependencies> 
     <dependency> 
      <groupId>org.glassfish.jersey.core</groupId> 
      <artifactId>jersey-client</artifactId> 
      <version>2.23.2</version> 
     </dependency>  
     <dependency> 
      <groupId>org.glassfish.jersey.containers</groupId> 
      <artifactId>jersey-container-servlet-core</artifactId> 
      <version>2.23.2</version> 
      <scope>provided</scope> 
     </dependency> 
    </dependencies> 

web.xmlの

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

    <servlet-mapping> 
     <servlet-name>WebService</servlet-name> 
     <url-pattern>/api/*</url-pattern> 
    </servlet-mapping> 

</web-app> 

API.java

package api; 
    @Path("/v1") 
    public class API { 
    private Controller controller; 

    public API(){ 
     controller = new Controller(); 
    } 

    @GET 
    @Produces(MediaType.TEXT_HTML) 
    public String print1() { 
     return "Please specify what resource you need."; 
    } 

    /** 
    * Prints to the screen if we are in /v1/foo 
    * 
    * @return 
    */ 
    @GET 
    @Path("/foobar") 
    @Produces(MediaType.TEXT_HTML) 
    public String print2() { 
     return "Please specify what resource you need."; 
    } 
} 

私のプロジェクトのフォルダ構造は次のようになります。

api-mashup-api/Java Resources/src/api/API.java 

私は前にジャージーの1.1を使用して、私は2.xと今私はウェブでのサーブレットののparamsの中に入れてよく分からないに移行。 xml。

SEVERE: Servlet [WebService] in web application [/api-mashup-api] threw load() exception 
java.lang.ClassNotFoundException: org.glassfish.jersey.servlet.ServletContainer 

は私もちゃんと私のindex.htmlに達することができるため、サーバーの作品ではなく、APIの一部:私は私のTomcatサーバー上でAPI.javaを実行しようとすると、私は次の例外を取得します。ここで何をすべきかわからない。明らかに、サーブレットの部分に何か問題があります。

EDIT-物事私が試してみました:

+0

に変更してみてください、あなたは APIを試すことはできますか?また、これは動作しませんAPI.javaの場合を追加します。 – Veeram

+0

両方を試してみて、彼らは私に同じ結果を与えました。 – dikaJoe

+0

申し訳ありませんが、私は、API.javaクラスを投稿に追加することを意味します。 – Veeram

答えて

0

私は多くの時間を有していたし、このエラーを修正しました。基本的には常に依存関係の問題です。ここで

はそれを修正する手順は、次のとおりです

  1. は、あなたがそれに応じてPOMを更新し、すべてのパッケージ(すなわち、GlassFishのの2.23.2)とサーバーの最新バージョンを使用していることを確認してください。 Jerseyの新しいバージョンを使用しているので、これはあなたのケースにとって非常に重要です。

ドン(これは、プロジェクトのリフレッシュとは異なり)リフレッシュするためにMavenのメニューを使用し

  • をきれいにするMavenのメニューを使用して構築プロジェクトリフレッシュステップをスキップするか、過去にそれらのいくつかをやり遂げた場合、それらを次々にやっていくことと同じことを過去に行ったと仮定します。おそらく、サーブレットコンテナ "ジャージー・コンテナサーブレット・コア" を発行し

  • 0

    は、サーブレット2.xのコンテナ用で、

    <dependency> 
          <groupId>org.glassfish.jersey.containers</groupId> 
          <artifactId>jersey-container-servlet</artifactId> 
          <version>2.23.2</version> 
          <scope>provided</scope> 
         </dependency> 
    
    関連する問題