如何在嵌入 Grizzly 的 Jersey 应用程序上获取 HTTP 请求方法



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

但是,现在我正在我的应用程序上使用嵌入式 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方法,所以,任何其他或更正确的方法来做到这一点,这是值得赞赏的。

解决方案是使用灰熊的请求类,如灰熊官方网站上的这个页面所述:

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

与 Servlet

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

相关内容

最新更新