JunitTestの開始時にスタンドアロンジャージーサーバーを実行しています。 JaxRS controllerが動作しているかどうか、私のカスタムHttpClientをテストしています。私はいつもglassfishに埋め込まれたこのJaxRsResourceControllerを使用することができました。ここでJerseyでHttpServletRequestの依存関係が見つからない
はJaxRsController(ライトバージョン)
@Path("root")
public class JaxRsResourceController implements
ResourceController<HttpServletRequest> {
@Context
private UriInfo context;
@Context
HttpServletRequest request;
@Context
HttpServletResponse response;
@GET
public String hello(){
System.out.println("Uri is "+this.context.getBaseUri().toString());
return "Hello "+peoples;
}
}
である私は、クライアントとの問題はありませんが、私は、サーバーを起動したときに、私が持っている:基本的には、こと
GRAVE: The following errors and warnings have been detected with resource and/or provider classes:
SEVERE: Missing dependency for field: javax.servlet.http.HttpServletRequest com.robustaweb.library.rest.controller.implementation.JaxRsResourceController.request
SEVERE: Missing dependency for field: javax.servlet.http.HttpServletResponse com.robustaweb.library.rest.controller.implementation.JaxRsResourceController.response
at com.sun.jersey.api.container.httpserver.HttpServerFactory.create(HttpServerFactory.java:172)
at com.robustaweb.library.rest.server.JerseyServer.startServer(JerseyServer.java:44)
を語ります@Contextの注入時間は、HttpServletRequestに依存しません。 しかし、リクエストとレスポンスで@Contextアノテーションを削除しても、UriInfo context
のままにしておくと、それは問題ありません。私はUriを読むことができます。
私はMavenのPOMのウィッヒがでLIBSを強制するために、今では数回変更:
<dependencies>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-server</artifactId>
<version>1.14</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>javax.ws.rs</groupId>
<artifactId>jsr311-api</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
</dependency>
</dependencies>
任意のアイデアを?
それは私の仕事ではありませんでした。ここに私の答えがあります。 –