【发布时间】:2014-02-07 05:59:53
【问题描述】:
我有项目在 Windows 7、jdk6 和 Apache tomcat7 和 eclipse juno 上运行。
现在我必须把它移到 windows8 上。
在windows8下,我下载了64位windows的jdk1.6.0_35,64位的apche-tomcat7和eclipse luna。
但是当我运行这个项目时,它会给我jsp编译错误,也会给我以下错误
org.apache.jasper.JasperException: Unable to compile class for JSP
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:661)
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)
根本原因
java.io.IOException: tmpFile.renameTo(classFile) failed
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)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:353)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:340)
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)
我应该怎么做才能解决 windows8 中的这个错误?
【问题讨论】:
-
它编译了一个 .jsp 到一个类文件。我怀疑这个类文件是一个 tmp 文件,编译器没有权限将它重命名为正确目录中的 .class 文件。那么您在哪个帐户下运行,它是否有权写入 webapp 的安装目录?
-
我仅以管理员身份登录的用户。我已将此 webapps 移动到 windows7 和 windowsNT 那里它也给出了相同的编译错误...
-
您的 jsp 文件是否会抛出 FileNotFoundException 异常? issues.apache.org/bugzilla/show_bug.cgi?id=38713