したがって、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-物事私が試してみました:
追加API.javaをweb.xmlの
内のparam-valyeにはBasic full configuration for Jersey on Tomcat in eclipse を見て、ソリューションを実装しました。今、APIを実行すると、サーバーはクラッシュしませんが、たとえばhttp://localhost:8080/api-mashup-api/v1のリソースは見つかりません。
- glassfishサーブレットコンテナの依存関係からスコープタグを削除しました。
に変更してみてください、あなたは API PARAM-value>を試すことはできますか?また、これは動作しませんAPI.javaの場合を追加します。 –
Veeram
両方を試してみて、彼らは私に同じ結果を与えました。 – dikaJoe
申し訳ありませんが、私は、API.javaクラスを投稿に追加することを意味します。 – Veeram