Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java GuiceConfig和JSP_模板_基本路径_Java_Google App Engine_Jersey_Jetty_Guice - Fatal编程技术网

Java GuiceConfig和JSP_模板_基本路径

Java GuiceConfig和JSP_模板_基本路径,java,google-app-engine,jersey,jetty,guice,Java,Google App Engine,Jersey,Jetty,Guice,我有一个GUI配置: public class GuiceConfig extends GuiceServletContextListener 。。。使用configureServlets()方法执行以下操作: params.put(ServletContainer.FEATURE_FILTER_FORWARD_ON_404, "true"); params.put(ServletContainer.JSP_TEMPLATES_BASE_PATH, "/WEB-INF/jsp"); serv

我有一个GUI配置:

public class GuiceConfig extends GuiceServletContextListener
。。。使用configureServlets()方法执行以下操作:

params.put(ServletContainer.FEATURE_FILTER_FORWARD_ON_404, "true");
params.put(ServletContainer.JSP_TEMPLATES_BASE_PATH, "/WEB-INF/jsp");

serve("/*").with(GuiceContainer.class, params);
params.put(ServletContainer.FEATURE_FILTER_FORWARD_ON_404, "true");
params.put(ServletContainer.JSP_TEMPLATES_BASE_PATH, "/WEB-INF/jsp");

serve("/rest/*").with(GuiceContainer.class, params);
此类使用@Path(“/admin/index”)将请求馈送到资源中,后者只返回一个可查看的JSP资源:

return new Viewable( "/admin/index" ) ;
当我运行这个源代码并访问本地URL localhost:8046/admin/index时,我成功地检索到了所需的JSP资源

但是,我不想使用(GuiceContainer.class)提供(“/*”)。这样做会干扰服务器上运行的其他模块。我只想使用/rest处理预挂起的请求。如果我将上述来源修改为以下内容:

params.put(ServletContainer.FEATURE_FILTER_FORWARD_ON_404, "true");
params.put(ServletContainer.JSP_TEMPLATES_BASE_PATH, "/WEB-INF/jsp");

serve("/*").with(GuiceContainer.class, params);
params.put(ServletContainer.FEATURE_FILTER_FORWARD_ON_404, "true");
params.put(ServletContainer.JSP_TEMPLATES_BASE_PATH, "/WEB-INF/jsp");

serve("/rest/*").with(GuiceContainer.class, params);
我现在可以成功访问本地URL,localhost:8046/rest/admin/index。但是,尽管此页面成功返回,但JSP没有正确显示。控制台日志表明JSP资源(新的可视(“/admin/index”)已正确解析。。。但该页面的输出如下所示:

Error 404 /WEB-INF/jsp/admin/index.jsp

我一直在挖掘,但找不到解释这个问题的答案。非常感谢您的帮助。

根据servlet规范,正常请求无法访问整个
/WEB-INF/

但是,它可以通过各种分派技术在内部引用

错误404/WEB-INF/jsp/admin/index.jsp
似乎表明有人试图直接引用该路径

如果您点击了
http://localhost/admin/index
http://localhost/admin/index.jsp
发生了什么