从JAX-RS方法调用JSP会产生运行时错误

时间:2014-04-09 23:40:45

标签: java jsp maven servlets resteasy

我有一个基于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>

0 个答案:

没有答案