我有两个在 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)
该目录/文件上的权限是否正确?