我是Windows上的Tomcat新手。我正在尝试使用Tomcat部署我在RHEL 5中创建的Java项目。现在我想在窗口上运行该项目。所以我将我的项目文件夹复制并粘贴到Tomcat Web应用程序目录
中i.e C:\Program Files\apache-tomcat-6.0.37\webapps
但我无法运行项目,因为我在打开第一个登录页面时面临以下错误。我是否需要在代码或web.xml文件中进行任何进一步更改,因为我现在正在Windows上部署它?
type Exception report
message java.lang.IllegalStateException: No output folder
**Description** The server encountered an internal error that prevented
it from fulfilling this request.
Exception
org.apache.jasper.JasperException: java.lang.IllegalStateException: No output folder
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:538)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:364)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
root cause
java.lang.IllegalStateException: No output folder
org.apache.jasper.JspCompilationContext.createOutputDir(JspCompilationContext.java:678)
org.apache.jasper.JspCompilationContext.getOutputDir(JspCompilationContext.java:197)
org.apache.jasper.JspCompilationContext.getClassFileName(JspCompilationContext.java:514)
org.apache.jasper.compiler.Compiler.isOutDated(Compiler.java:453)
org.apache.jasper.compiler.Compiler.isOutDated(Compiler.java:399)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:585)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.37 logs.
答案 0 :(得分:52)
我已完全访问我的Tomcat目录。 现在我没有收到这个错误。 谢谢!!
答案 1 :(得分:18)
我在ubuntu 14.04上遇到了类似的问题。 我正在做一些分析并手动删除工作文件夹。然后在运行tomcat服务器时,我遇到了同样的异常。 问题是,当我们访问tomcat的管理器应用程序时,它需要jsp页面来显示内容,而JSP页面是从生成的类文件中呈现的,该文件位于work / Catalina / localhost / ....文件夹中。
我手动创建了工作目录,但问题仍未解决。
然后我意识到,因为我手动创建了工作目录tomcat7,用户没有权限在该目录上写入。将工作目录的所有者从root更改为tomcat7
sudo chown tomcat7 work
重启tomcat service tomcat restart
。
问题解决了。
希望这有帮助
答案 2 :(得分:5)
如果您使用的是Linux / Unix并面临此问题:
步骤进行:
注意用户和服务,在我的情况下,你的tomcat可能是其他任何东西......
1. mkdir work
2. sudo chown tomcat work
3. service tomcat6 restart
答案 3 :(得分:1)
首先作为root帐户启动tomcat,已经创建了工作文件夹。您运行tomcat作为帐户tomcat,因为tomcat帐户没有权限到文件夹./work,所以抛出异常。要解决它,ps删除./work,然后由tomcat用户重新启动tomcat。
答案 4 :(得分:1)
检查您的磁盘空间?
当我的/分区已经填满时,我也遇到了这个错误。释放一些磁盘空间为我删除了这个错误。
答案 5 :(得分:1)
我更改了工作目录的权限,并且它正在运作......
<强>步骤:强>
1.转到 tomcat 所在的目录
2.执行命令:
sudo chmod 777 work
答案 6 :(得分:0)
授予tomcat目录的完全权限,然后重新启动该服务。它对我有用,我希望这对你也有用。
答案 7 :(得分:0)
可能是因为缺少对缓存目录的写权限(Linux上的/ var / lib / tomcat6)。如果是这种情况,请使用以下命令授予完全访问权限并重新启动Tomcat:
static void setCurrentDir() throws URISyntaxException{
String s;
s = ESP8266_Configurator.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath();
s = s.substring(0, s.lastIndexOf('/'));
System.setProperty("user.dir",s);
}
如果以前这对您有用,有时工作目录只是处于错误状态,您可以通过简单地删除它并允许Tomcat从头开始创建新的来修复它。
答案 8 :(得分:0)
尝试完全重启服务器(如果适用)
答案 9 :(得分:0)
授予tomcat目录的所有权限。
sudo chmod -R 777 /path/to/tomcat/directory
我的是“ /opt/tomcat/
”
对我有用。 希望对您有所帮助。
注意:请不要忘记
sudo
答案 10 :(得分:0)
完全允许您使用apache。没有Windowsbotãodireito做鼠标程序-> seguranca->avançadas->permissões-> adicionar