Java 如何使用Guice 3.0为JSP提供服务?

Java 如何使用Guice 3.0为JSP提供服务?,java,jsp,guice,guice-servlet,Java,Jsp,Guice,Guice Servlet,我正在尝试从Guice提供JSP。我找不到任何关于如何做到这一点的基本例子 我的设置: web.xml <filter> <filter-name>guiceFilter</filter-name> <filter-class>com.google.inject.servlet.GuiceFilter</filter-class> </filter> <filter-mapping> &l

我正在尝试从Guice提供JSP。我找不到任何关于如何做到这一点的基本例子

我的设置:

web.xml

<filter>
    <filter-name>guiceFilter</filter-name>
    <filter-class>com.google.inject.servlet.GuiceFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>guiceFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

<listener>
    <listener-class>org.example.Bootstrap</listener-class>
</listener>
org.example.BootstrapModule(类似于…)

MainServlet中,我执行以下操作:

request.getRequestDispatcher("test.jsp").include(request, response);

我的test.jsp位于
webapp/test.jsp
(我使用Maven)

它不起作用!我总是会犯这样的错误:

SEVERE: PWC6117: File XXX not found
Guice传递给org.apache.jasper.servlet.JspServlet的信息似乎不是JSP工作所需的信息


我错过了什么?我甚至必须手动指定org.apache.jasper.servlet.JspServlet吗?从Guice正确服务JSP需要什么?

您需要覆盖
引导#getModule()
以返回
新的引导模块()


您需要重写
Bootstrap#getModule()
以返回
新的BootstrapModule()

看来这是一个好主意

作为一种解决方法,有人说可以编译Guice的主干。我还发现了这个设置

request.setAttribute(org.apache.jasper.Constants.JSP_FILE, "/test.jsp");
之前的转发也工作

但是我必须运行更多的测试来查看我将使用什么,直到Guice在公共版本中得到修复。

这似乎是一个很好的解决方案

作为一种解决方法,有人说可以编译Guice的主干。我还发现了这个设置

request.setAttribute(org.apache.jasper.Constants.JSP_FILE, "/test.jsp");
之前的转发也工作

但是我必须运行更多的测试来查看我将使用什么,直到Guice在公共版本中得到修复

request.getRequestDispatcher("/test.jsp").include(request, response);
request.getRequestDispatcher("/test.jsp").forward(request, response);
SEVERE: PWC6117: File XXX not found
@Override
protected Module getModule() {
    return new BootstrapModule();
}
request.setAttribute(org.apache.jasper.Constants.JSP_FILE, "/test.jsp");