加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

使用Jersey缺少HttpServletRequest的依赖项

发布时间:2020-12-13 20:47:15 所属栏目:百科 来源:网络整理
导读:我在JunitTest的开头运行了一个Standalone Jersey服务器.我正在测试我的 JaxRS controller是否正常,以及我的自定义HttpClient.请注意,我一直能够使用嵌入在glassfish中的这个JaxRsResourceController. 这是JaxRsController(轻量版) @Path("root")public clas
我在JunitTest的开头运行了一个Standalone Jersey服务器.我正在测试我的 JaxRS controller是否正常,以及我的自定义HttpClient.请注意,我一直能够使用嵌入在glassfish中的这个JaxRsResourceController.

这是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上下文,那没关系,我可以阅读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>

任何的想法 ?

servlet依赖项被分成另一个模块,尝试添加
<dependency>
    <groupId>com.sun.jersey</groupId>
    <artifactId>jersey-servlet</artifactId>
    <version>1.14</version>
</dependency>

到你的pom.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读