2014-02-21 24 views
0

我们有一个应用程序运行在独立的jetty服务器上,服务器版本是6.1.20。启动应用程序后,它运行良好一段时间。但过了一段时间(这不是确定性的),除了重新启动码头服务器之外,某些jsp页面无法在应用程序中打开。码头服务器运行一段时间后,Jetty服务器无法加载某些jsp的某些类

任何一个遇到这个问题?

唯一的例外是:

Nested in org.apache.jasper.JasperException: PWC6034: Unable to load class for JSP: 
java.lang.ClassNotFoundException:org.apache.jsp.XXX.XXX_jsp 
at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
     at org.apache.jasper.servlet.JasperLoader.findClass(JasperLoader.java:204) 
     at org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:190) 
     at org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:122) 
     at org.apache.jasper.JspCompilationContext.load(JspCompilationContext.java:639) 
     at org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:192) 
     at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:372) 
     at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:486) 
     at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:380) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) 
     at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502) 
     at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:390) 
     at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) 
     at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) 
     at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) 
     at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418) 
     at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:327) 
     at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:126) 
     at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:112) 
     at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:249) 
     at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1063) 
     at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:827) 
     at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:736) 
     at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:396) 
     at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:350) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) 
     at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502) 
     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1162) 
     at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:78) 
     at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77) 
     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1153) 
     at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:264) 
     at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107) 

回答

0

此类问题通常与某种扫描过程中清洗出在哪里码头已经解开web应用程序的临时目录

+0

但仅限于某个jsp页面,其类文件存在于/ tmp/JettyXXXXXX中。 如果是由于某种清理过程清理临时目录,那么为什么其他jsp页面可以打开,除了一个。无法打开的不是特定的,它可能是任何jsp页面。 – lolana

0

这可能是一些TMP-目录清理进程只会删除某些在指定时间内未被访问的文件。

我有这个问题,发现在我的CentOS 5.9上,tmpwatch正在删除tmp目录中10天内没有被访问过的文件。这就是为什么一些jsp的工作,有些没有。

我通过从tmpwatch进程中排除Jetty tmp文件夹解决了该问题。

相关问题