1

我正在开发一个 JAX-RS 应用程序。之前,我将它作为 WAR 安装在 Tomcat 服务器上,并且我正在使用以下方法获取 HTTP 请求方法: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 方法,因此,任何其他或更正确的方法都值得赞赏。

4

1 回答 1

2

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

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

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

于 2013-11-10T21:31:32.383 回答