14

我正在尝试在 Windows 7 上安装 tomcat-7.0.27。然后单击 bin/startup.bat,出现一个窗口,我在最后一行看到“INFO:服务器启动时间为 761 毫秒”。然后我尝试检查“http”//localhost:8080”,但下面的信息显示:

HTTP Status 500 -

type Exception report

message

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:585)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:391)
    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:722)
root cause

java.lang.IllegalStateException: No output folder
    org.apache.jasper.JspCompilationContext.createOutputDir(JspCompilationContext.java:738)
    org.apache.jasper.JspCompilationContext.getOutputDir(JspCompilationContext.java:196)
    org.apache.jasper.JspCompilationContext.getClassFileName(JspCompilationContext.java:581)
    org.apache.jasper.compiler.Compiler.isOutDated(Compiler.java:461)
    org.apache.jasper.compiler.Compiler.isOutDated(Compiler.java:425)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:639)
    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:722)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.27 logs.

Apache Tomcat/7.0.27

然后我在窗口的每个开头都找到了这些信息:

java.util.logging.ErrorManager: 4
java.io.FileNotFoundException: C:\Program Files\apache-tomcat-7.0.27\logs\catalina.2012-05-14.log (Access is denied)

谁能告诉我这里出了什么问题?

4

10 回答 10

22

当您安装东西不够小心时,Windows 7 很容易遇到这样的麻烦。您必须确保 SYSTEM 用户对 Tomcat 文件夹具有完全访问权限,这样当 Tomcat 运行时,它可以在自己的目录中自由创建文件夹和文件。

于 2012-05-14T04:28:40.607 回答
18

问题是运行 Tomcat 的用户在安装文件夹中缺少文件权限(读/写)。

解决方案

右键单击 Tomcat 文件夹(apache-tomcat-7.0.29),选择“属性”,转到“安全选项卡”,尝试完全控制您电脑中的任何用户配置文件,以确保安全。

然后,再次单击 C:\Program Files (x86)\Apache Software Foundation\apache-tomcat-7.0.29\bin\startup.bat 并等待应用程序“startup.bat”自行创建文件夹。


其他选项是手动(我手动创建了以下目录):

  • apache-tomcat-7.0.14/work/Catalina/localhost:
  • apache-tomcat-7.0.14/work/Catalina/localhost/_
  • apache-tomcat-7.0.14/work/Catalina/localhost/docs
  • apache-tomcat-7.0.14/work/Catalina/localhost/examples
  • apache-tomcat-7.0.14/work/Catalina/localhost/host-manager
  • apache-tomcat-7.0.14/work/Catalina/localhost/manager
  • apache-tomcat-7.0.14/config/Catalina/localhost/
  • apache-tomcat-7.0.14/logs
于 2012-07-18T16:28:16.910 回答
7

什么对我有用:转到您的 tomcat 安装 bin 目录,对我来说:C:\Program Files\Apache Software Foundation\apache-tomcat-7.0.37\bin。右键单击“startup.bat”并选择“以管理员身份运行”

于 2013-05-18T20:34:14.077 回答
3

谷歌在搜索时将我指向这里:

HTTP Status 500 - java.lang.IllegalStateException: No output folder

我是 Mac OS X 10.8.2 Mountain Lion 用户。我需要做的是,在去 usr/local 之后

sudo chown -R <YOUR_USERNAME> apache-tomcat-7.0.34

当然,一切都发生在终端。您还应该注意更改适合您的 apache tomcat 版本的文件夹名称中的数字。

于 2013-01-07T00:29:45.903 回答
3

您没有在系统驱动器中创建文件夹所需的访问权限。

您可以通过以下方式解决此问题

  1. 右键单击位于 apache 安装的“bin”文件夹中的“startup.bat”。

  2. 点击“以管理员身份运行”

于 2013-11-06T19:36:23.363 回答
2

检查 CATALINA_HOME 环境变量是否设置为正确的 tomcat 路径

于 2014-03-07T09:46:55.990 回答
1

感谢您的解决方案。

这个问题在我的电脑中通过以下步骤解决。

  1. 右键单击位于 apache 安装的“bin”文件夹中的“startup.bat”。

  2. 点击“以管理员身份运行”

于 2013-11-19T09:17:29.090 回答
1

我遇到了同样的问题,但是可以通过管理权限轻松解决,只需使用管理权限打开命令提示符就可以了!!!希望能帮助别人..

于 2015-03-12T07:17:25.770 回答
0

如果这对您有用,有时工作目录只是处于错误状态,您可以通过删除它并允许 tomcat 从头开始​​创建一个新目录来修复它。

于 2013-11-14T20:54:37.130 回答
0

我在 Windows 8 上遇到了这个问题,并且运行“startup.bat”不起作用。

我通过转到我的 JazzTeamServer 文件夹(我正在安装 Jazz CLM),右键单击文件夹、属性、安全性、编辑并标记为您正在使用的组的完全控制来修复它。

之后,Tomcat 服务器能够创建它需要的所有文件夹。

希望这会有所帮助,这是我在 SO 中的第一个答案。;)

于 2014-08-28T18:37:28.343 回答