【问题标题】:How to get the HTTP request method on a Grizzly-embedded Jersey application?如何在 Grizzly 嵌入式 Jersey 应用程序上获取 HTTP 请求方法?
【发布时间】:2013-11-10 01:56:43
【问题描述】:

我正在开发一个 JAX-RS 应用程序。之前,我将它作为 WAR 安装在 Tomcat 服务器上,并使用:javax.servlet.http.HttpServletRequest.getMethod() 获取 HTTP 请求方法。

但是,现在我在我的应用程序上使用嵌入式 Grizzly 服务器,并在启动时发现以下错误:

Missing dependency for constructor public wci.api.resource.AudioSessionResource(javax.servlet.http.HttpServletRequest) at parameter index 0

我所有的资源都扩展了一个 MyHappyCustomResource 类,该类有一个构造函数,该构造函数接收一个 HttpServletRequest,由资源构造函数通过注入提供。

这是一个资源构造函数的例子,super调用来自MyHappyCustomResource

import javax.servlet.http.HttpServletRequest;

public AudioSessionResource(@Context HttpServletRequest request) {
    super(request);
    this.dao = new AudioSessionDao(this.sessionManager.getCurrentSession());
}

现在我需要这个只是为了获得 HTTP 方法,因此,任何其他或更正确的方法都值得赞赏。

【问题讨论】:

    标签: java http rest jersey grizzly


    【解决方案1】:

    解决方案是使用 Grizzly 的 Request 类,正如 Grizzly 官方网站上的此页面所述:

    https://grizzly.java.net/httpserverframework.html

    与 Servlet 规范提供的抽象类似:HttpHandler (Servlet)、Request (HttpServletRequest)、Response (HttpServletResponse)。

    【讨论】:

    • 我不明白为什么会有这么好的评论。提供的链接有几个处理帖子数据的例子,但实际上并没有回答这个问题。链接引用的文本中没有描述允许使用 Request 类来确定请求是 GET 还是 POST 的方法。
    • 对很多人都有帮助。它在该链接上不是明确的而是隐含的。没有确切的代码行来复制和粘贴这一事实并不意味着所提供的信息不足以解决问题。这是给我和投票的人的。如果你不能理解这一点,我不明白为什么你应该责怪答案不足以解决你的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-23
    • 2013-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多