Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.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
动态生成的.jsp文件:使用jetty maven插件时发生PWC6117错误_Jsp_Spring Mvc_Jetty_Embedded Jetty_Maven Jetty Plugin - Fatal编程技术网

动态生成的.jsp文件:使用jetty maven插件时发生PWC6117错误

动态生成的.jsp文件:使用jetty maven插件时发生PWC6117错误,jsp,spring-mvc,jetty,embedded-jetty,maven-jetty-plugin,Jsp,Spring Mvc,Jetty,Embedded Jetty,Maven Jetty Plugin,我使用SpringMVC、Maven和JettyMaven插件7.6.2.v20120308在本地开发 我知道你们中的一些人会认为这不是一个好主意,但我会自动生成一些.jsp文件。例如,我有一个dyn.js文件,我希望它是动态的,包含JSTL/EL代码 简而言之,我是这样做的: 如果调用了dynamic dyn.js,但解释的缓存版本还不存在,我会将请求重定向到一个特殊的控制器 控制器获取dyn.js文件的内容,并使用该内容在我的其他.jsp文件所在的同一目录中创建一个dyn.js.jsp文件。

我使用SpringMVC、Maven和JettyMaven插件7.6.2.v20120308在本地开发

我知道你们中的一些人会认为这不是一个好主意,但我会自动生成一些.jsp文件。例如,我有一个dyn.js文件,我希望它是动态的,包含JSTL/EL代码

简而言之,我是这样做的:

如果调用了dynamic dyn.js,但解释的缓存版本还不存在,我会将请求重定向到一个特殊的控制器

控制器获取dyn.js文件的内容,并使用该内容在我的其他.jsp文件所在的同一目录中创建一个dyn.js.jsp文件。我在运行时使用以下方法获取该目录:

getServletContext().getRealPath("/") + File.separator + "WEB-INF" + File.separator + "tags"
生成jsp文件后,我的控制器将返回视图路径或ModelAndView,以便处理视图

一旦视图最终呈现,我将使用过滤器中的自定义响应包装器获取结果内容,并将其保存到缓存文件中

这个方法非常有效!我很满意

唯一的问题是,有时我在尝试生成动态dyn.js时会出现以下错误:

Jul 8, 2012 5:15:12 PM org.apache.jasper.servlet.JspServlet _serviceJspFile
SEVERE: PWC6117: File "C:\somepath\src\main\webapp\WEB-INF\tags\dyn.js.jsp" not found
当这种情况发生时,没有什么可做的。即使我刷新页面,jsp也找不到,因此我的dyn.js无法工作。然后我进行检查,发现.jsp文件确实存在于我的文件系统C:\somepath\src\main\webapp\WEB-INF\tags\dyn.js.jsp中

这个问题似乎是随机发生的。我不能随意重现这个问题。我认为这种情况有五分之一的时间会发生

在某些情况下,Jetty似乎无法看到生成的.jsp文件

你知道是什么触发了这个问题,我如何解决它吗


更新:我使用jetty maven插件版本7.6.2.v20120308。

对于那些感兴趣的人,我想我找到了一个解决方法。在第一个请求之前创建临时的.jsp文件,即使其中没有内容,似乎可以解决问题


因此,当应用程序启动时,我有一个钩子,可以创建包含空内容的动态.jsp文件。

我认为问题在于文件路径。当您在控制台上复制路径并将其粘贴到windows资源管理器上时,您无法打开路径