我有一个基于JAX-RS的Web应用程序,我已正常工作。开发环境是Jetty 9,Maven 3.0.4和JBoss RESTeasy。
我在公共类资源/login
中有一个方法(在http://somedomain/login
可达,经过测试,正常工作),看起来像这样(请参阅此SO post):
@Path("/login")
public class LoginResource {
@GET
@Path ("/silly")
@Produces ("text/html")
public void sillier (@Context HttpServletRequest request, @Context HttpServletResponse response) throws ServletException, IOException
{
request.getRequestDispatcher ("/Project/hello.jsp").forward (request, response);
}
}
如果上述方法/Project/hello.jsp
没有调用,则http://somedomain/Project/hello.jsp
上的文件sillier
可以加载,而hello.jsp
的内容如下所示。< / p>
<HTML><BODY>
Hello! The time is now <%= new java.util.Date() %>
</BODY></HTML>
此代码执行您所期望的操作 - 在浏览器中打印出当前时间。
但是,当我致电http://somedomain/login/silly
时,我会看到以下问题:
Unable to find contextual data of type: javax.servlet.http.HttpServletRequest
我错过了什么?这是pom.xml
和/或web.xml
中的一些配置吗?
我的web.xml
位于以下位置:
Archetype Created Web Application
<servlet>
<servlet-name>Resteasy</servlet-name>
<servlet-class>
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher
</servlet-class>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>com.sonny.project.web.App</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>Resteasy</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>