JunitTest 시작 부분에 독립 실행 형 저어 서버가 실행되고 있습니다. 내 JaxRS controller이 작동하는지, 내 사용자 지정 HttpClient인지 테스트하고 있습니다. 글래스 피쉬에 포함 된이 JaxRsResourceController를 항상 사용할 수있었습니다.저지로 HttpServletRequest에 대한 종속성이 누락되었습니다.
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)
을 기본적으로는에 말한다 : 여기
는 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;
}
}
나는 고객과 아무 문제가 없지만, 내가 서버를 시작할 때, 내가 가진이 @Context injection time, HttpServletRequest에 대한 의존성은 없다. 그러나 요청 및 응답시 @Context 주석을 제거했지만 그 내용을 UriInfo context
으로 유지하면 문제가 없으며 Uri를 읽을 수 있습니다.
<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>
어떤 생각 :
은 내가 메이븐 치어 느릅 나무의 libs가 강제로 지금 몇 번 변경?
그것은 나를 위해 일하지 않았다. 여기 내 대답이다. –