首页 文章

Tomcat JSP页面没有编译(java.io.IOException:tmpFile.renameTo(classFile)失败)

提问于
浏览
10

每次我在TomCat上运行我的Web应用程序时,它都会给我一个错误 . .jsp文件没有任何问题,只是我必须重新启动服务器,有时完整的IDE会让这个错误消失 .

错误如下

2014年3月12日下午5:57:01 org.apache.catalina.core.StandardWrapperValve在路径[/ Assignment_1_Flight_Reservation_System]的上下文中调用SEVERE:servlet [jsp]的Servlet.service()抛出异常[无法为JSP编译类]带有根本原因java.io.IOException:tmpFile.renameTo(classFile)在org.apache.jasper.compiler.jasper.compiler.map.til.SinstallSmap的org.apache.jasper.compiler.SmapUtil $ SDEInstaller.install(SmapUtil.java:204)失败(SmapUtil.java:163)org.apache.jache上的org.apache.jasper.compiler.Compiler.compile(Compiler.java:378)中的org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:483) . 位于org.apache.jasper.JspCompilationContext.compile的org.apache.jasper.compiler.Compiler.compile(Compiler.java:340)中的jasper.compiler.Compiler.compile(Compiler.java:353)(JspCompilationContext.java:646) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357)位于org.apache.jasper.serv的org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) let.JspServlet.service(JspServlet.java:334)位于org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)的javax.servlet.http.HttpServlet.service(HttpServlet.java:728) .apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)位于org.apache.catalina.core.ApplicationFilterChain的org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393) .internalDoFilter(ApplicationFilterChain.java:243)org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)at org . apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)位于org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve . java:171)at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValv e.java:99)org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)org.apache.catalina .connector.CoyoteAdapter.service(CoyoteAdapter.java:408)org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)at org.apache.coyote.AbstractProtocol $ AbstractConnectionHandler.process(AbstractProtocol.java:589 )atg.apache.tomcat.util.net.JIoEndpoint $ SocketProcessor.run(JIoEndpoint.java:312)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)at java.util.concurrent.ThreadPoolExecutor $ java.lang.Thread.run上的Worker.run(ThreadPoolExecutor.java:615)(Thread.java:744)

5 回答

  • 7

    清理Tomcar工作目录$ TOMCAT / work以查看它是否解决了它,并检查工作目录结构的权限

  • 13

    与Project一起清理Tomcat的工作目录 .

    运行并重新启动服务器,它应该工作

    Clean Working Directory of Tomcat Server

  • 4

    我知道这已经晚了但是在2017年,使用Tomcat 8仍然会发生这种情况 .
    问题是三件事之一 .

    • 您没有适当的权限
      如果是这种情况,则每次使用每个jsp都应该发生这种情况 .

    • 有点时髦,你需要清理工作目录 .
      如果是这种情况,则问题通常每次都发生在每个jsp上,但可能是间歇性的 .

    • 另一个程序,例如McAfee或Windows索引,正在读取临时类文件,并且不允许重命名它 .
      这就是我的团队发生的事情 . McAfee正在扫描新创建的文件,导致问题完全断断续续,只是随机发生 . 要解决此问题,您可以选择核和卸载防病毒软件,但如果您处于无法做到这一点的环境中,请让安全团队在您的工作文件夹和Apache文件夹中添加扫描排除项 .
      如果这不是问题,请尝试关闭工作文件夹和Apache文件夹上的Window文件索引 .

  • 0

    对我来说,原来是Tortoise Git的TGitCache.exe . 必须尝试更新图标覆盖 .

  • 0

    1)清理tomcat工作目录2)重新启动工作区(如果你在eclipse中使用服务器) . 3)重启服务器 .

    这适合我 .

相关问题