我有两个在 Glassfish 2.1 上运行的服务器,它们都有相同的Web应用程序。

两次发生此错误:某些jsp页停止显示,仅显示空白页,并且以下错误打印在日志中...

PWC1231:Servlet JSP的Servlet.service()引发异常
java.io.FileNotFoundException:/path/to/jsp/file/jsp_file.jsp.java
(权限被拒绝)位于java.io.FileOutputStream.open(本机方法)
在java.io.FileOutputStream。(FileOutputStream.java:179)在
java.io.FileOutputStream。(FileOutputStream.java:70)在
org.apache.jasper.compiler.AntJavaCompiler.getJavaWriter(AntJavaCompiler.java:213)

org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:173)
在org.apache.jasper.compiler.Compiler.compile(Compiler.java:409)处
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:592)

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:344)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:470)
在org.apache.jasper.servlet.JspServlet.service(JspServlet.java:364)
在javax.servlet.http.HttpServlet.service(HttpServlet.java:831)在
org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:411)

org.apache.catalina.core.ApplicationDispatcher.doInvoke(ApplicationDispatcher.java:855)

org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:703)

org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:542)

org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:474)

org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:366)

org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1056)

org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:261)

org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:388)

org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:316)

org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:231)

org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)

org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:415)
在javax.servlet.http.HttpServlet.service(HttpServlet.java:738)处
javax.servlet.http.HttpServlet.service(HttpServlet.java:831)位于
org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:411)

org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:317)

org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)

com.my.app.filtro.FiltroCallcenter.doFilter(FiltroCallcenter.java:90)

org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)

org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)

org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:288)

org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:271)

org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:202)

org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)

org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
在com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)处
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:206)

org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)

org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)

org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)

org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)

org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:150)

org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)

org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)

org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)

org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)

org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:272)

com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:637)

com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:568)

com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:813)

com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)

com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)

com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)

com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)

com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)

,其后是:

PWC6344:无法为文件/path/to/jsp/file/jsp_file.jsp.java|#创建输出编写器

有时仅打印PWC6344错误,有时同时打印两个错误,而PWC1231错误总是跟在PWC6344之后(这在一定程度上是有意义的,因为在发生IOException时会抛出该异常)。

嗯,两次都发生此错误,我唯一要做的就是停止并启动实例,然后一切正常,而且此错误仅发生在其中一台服务器中。

发生了什么事?...或者我该如何诊断是什么原因导致的,所以我可以解决问题,而不必停止并重新开始永恒……

更新:

我正在研究这是否是文件描述符问题的可能性,如sbridges所建议的那样!但是,文件处理程序的最大数量是811975,其中一台服务器中有4520个打开的文件,而359532中只有89438个。

因此,我想可以肯定地说这不是问题!

有人有其他理论吗?

最佳答案

权限设置似乎不正确,您无法将已编译的jsp页面写入​​磁盘,

/path/to/jsp/file/jsp_file.jsp.java (Permission denied)

该目录/文件上的权限是否正确?

07-25 22:42
查看更多