8

jersey ライブラリを使用して、Tomcat と Eclipse で Web サービスを作成しようとしています。これは私のサービスクラスです:

package com.gontuseries.university;

import javax.ws.rs.core.MediaType;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;


@Path("/university")
public class UniversityRestWs {

    @GET
    @Produces(MediaType.TEXT_HTML)
    public String getHtmlUniversityInfo(){
        return "<html><body>test</body></html>";
    }

    @GET
    @Produces(MediaType.TEXT_PLAIN)
    public String getTextUniversityInfo(){
        return "test";
    }
}

そして、これはファイルweb.xmlです

 <servlet>
 <servlet-name>Jersey REST Service</servlet-name>
 <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
 <init-param>
 <param-name>com.sun.jersey.config.property.packages</param-name>
 <param-value>com.gontuseries.university</param-value>
 </init-param>
 </servlet>
 <servlet-mapping>
 <servlet-name>Jersey REST Service</servlet-name>
 <url-pattern>/rest/*</url-pattern>
 </servlet-mapping>

サービスをテストすると、java.lang.ClassNotFoundException: com.sun.jersey.spi.container.servlet.ServletContainer が表示されます https://jersey.java.net/download.htmlからジャージをダウンロードしました

誰かが私を助けることができますか?ありがとう

4

10 に答える 10

13

私にとっての問題は、サーバーの lib フォルダーに jar がないことでした。プロジェクト -> プロパティ -> 開発アセンブリ -> 追加 -> Java ビルド パス エントリのすべての依存関係にアクセスできることを確認してください。

于 2013-10-20T08:30:23.080 に答える
7

男、私は同じ問題を抱えていました。jersey-servlet-1.18.jar を WEB-INF/lib に追加して ID を解決します。次に、このフォルダーは次のようになりました。

.
この jar をすべて yout build-path に追加することを忘れないでください

于 2014-02-15T17:17:20.807 に答える
5

Jersey 2.x を使用していますか? その場合、ServletContainerクラスは別のパッケージに移動されています。この記事には、Jersey 1.7 から 2.x に移行するときに web.xml を変更する方法に関する良い情報があります: https://java.net/projects/jersey/lists/users/archive/2013-06/message/91

于 2013-09-17T19:03:39.930 に答える
4

クラスは「com.sun.jersey.spi.container.servlet.ServletContainerjersey-servlet.jar」に含まれているため、「jersey-server.jar」とともに WEB-INF/lib に配置する必要があります。

于 2013-08-08T12:59:33.387 に答える
1

Eclipse から Tomcat で restful jersey Web サービスを実行しようとしているときに、同じエラー「java.lang.ClassNotFoundException : com.sun.jersey.spi.container.servlet.ServletContainer」が発生しました。

次の手順は、問題の解決に役立ちました。

  • 依存する jar の正しいバージョンへの maven の依存関係を修正します。

         <dependency>
         <groupId>com.sun.jersey</groupId>
         <artifactId>jersey-server</artifactId>
         <version>1.19</version>
         </dependency>
         <dependency>
         <groupId>com.sun.jersey</groupId>
         <artifactId>jersey-servlet</artifactId>
         <version>1.19</version>
         </dependency>
    
  • Eclipse プロジェクトを右クリック -> Maven -> プロジェクトの更新

  • Eclipse プロパティで開発アセンブリが正しく構成されていることを確認します。プロジェクトを右クリック - プロパティ -> 開発アセンブリ -> 追加 -> Java ビルド パス エントリ -> Maven 依存関係

于 2016-02-02T18:59:03.453 に答える
0

JERSEY-jaxrs-ri-2.9 バージョンの zip を使用している場合は、以下の WEB.XML ファイルを使用します。

<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
  <param-name>jersey.config.server.provider.packages</param-name>
   ......
</init-param>
于 2014-06-12T10:39:47.467 に答える
0

上記の解決策は正しいですが、これらの変更を行った後でも、このエラーが発生しました。だから私がしたことは、ダウンロードされたすべてのmavenジャージーjarを削除し、プロジェクトを新しいmaven依存関係で再度更新することで、私の問題を解決しました

于 2017-12-07T09:31:50.020 に答える