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

时间:2014-03-12 22:06:19

标签: jsp tomcat netbeans compilation

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

错误如下

  

2014年3月12日下午5:57:01 org.apache.catalina.core.StandardWrapperValve   在上下文中用servlet [jsp]调用SEVERE:Servlet.service()   path [/ Assignment_1_Flight_Reservation_System]抛出异常[Unable   使用根本原因编译JSP的类] java.io.IOException:   tmpFile.renameTo(classFile)失败了   org.apache.jasper.compiler.SmapUtil $ SDEInstaller.install(SmapUtil.java:204)     在org.apache.jasper.compiler.SmapUtil.installSmap(SmapUtil.java:163)     在   org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:483)     在org.apache.jasper.compiler.Compiler.compile(Compiler.java:378)at   org.apache.jasper.compiler.Compiler.compile(Compiler.java:353)at   org.apache.jasper.compiler.Compiler.compile(Compiler.java:340)at   org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:646)     在   org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357)     在   org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)     在org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)     在javax.servlet.http.HttpServlet.service(HttpServlet.java:728)at   org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)     在   org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)     在   org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)     在   org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)     在   org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)     在   org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)     在   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)     在   org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.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)     在   org.apache.coyote.AbstractProtocol $ AbstractConnectionHandler.process(AbstractProtocol.java:589)     在   org.apache.tomcat.util.net.JIoEndpoint $ SocketProcessor.run(JIoEndpoint.java:312)     在   java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)     在   java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:615)     在java.lang.Thread.run(Thread.java:744)

5 个答案:

答案 0 :(得分:13)

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

答案 1 :(得分:7)

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

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

Clean Working Directory of Tomcat Server

答案 2 :(得分:5)

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

  1. 您没有适当的权限 如果是这种情况,则每次使用每个jsp都应该发生这种情况。
  2. 时髦的东西正在发生,你需要清理你的工作目录 如果是这种情况,则问题通常每次都发生在每个jsp上,但可能是间歇性的。
  3. 另一个程序,例如McAfee或Windows索引,正在读取临时类文件,并且不允许重命名。
    这就是我的团队发生的事情。 McAfee正在扫描新创建的文件,导致问题完全断断续续,只是随机发生。要解决此问题,您可以选择核和卸载防病毒,但如果您处于无法做到这一点的环境中,请让安全团队在您的工作文件夹和Apache文件夹中添加扫描例外。
    如果这不是问题,请尝试关闭工作文件夹和Apache文件夹上的Window文件索引。

答案 3 :(得分:0)

对我来说,原来是Tortoise Git的TGitCache.exe。必须尝试更新图标叠加层。

答案 4 :(得分:0)

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

这适合我。