【问题标题】:message java.lang.IllegalStateException: No output folder消息 java.lang.IllegalStateException:没有输出文件夹
【发布时间】:2013-08-23 07:29:47
【问题描述】:

我是 Windows 上 Tomcat 的新手。我正在尝试使用 Tomcat 部署我在 RHEL 5 中制作的 Java 项目。现在我想在窗口上运行该项目。所以我将我的项目文件夹复制并粘贴到 Tomcat 网络应用程序目录中

i.e C:\Program Files\apache-tomcat-6.0.37\webapps

但我无法运行该项目,因为我在打开我的第一个登录页面时遇到了以下错误。我现在在 Windows 上部署代码或 web.xml 文件是否需要进一步更改?

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.

【问题讨论】:

  • 这是针对 Tomcat 7 的,但我认为与您遇到的问题相同:stackoverflow.com/questions/10577494/…
  • 在程序文件夹之外安装tomcat,或者授予运行tomcat的用户在该文件夹中写入的权限。默认情况下,Windows 禁用普通用户对程序文件夹的直接文件访问
  • 哇 ....该解决方案对我有用 :) :) 非常感谢 speedday ..
  • 在设置 apache 服务器后立即面临同样的问题。将 apache 文件夹的位置从“程序文件”(与您相同)内部更改为 C 根目录“C:\apache-tomcat-9”。问题得到了解决。早些时候,我尝试更改文件夹的权限和访问权限,并尝试重新安装 apache,但没有成功。希望这对将来访问此问题的人有所帮助。

标签: jsp tomcat tomcat6


【解决方案1】:

我已授予对我的 Tomcat 目录的完全访问权限。 现在我没有收到此错误。 谢谢!!

【讨论】:

  • 这很有帮助,但解决方案并非易事。在 W10 上大约需要 5-10 个步骤。
【解决方案2】:

我在 ubuntu 14.04 上遇到了类似的问题。 我正在做一些分析并手动删除了工作文件夹。然后在运行 tomcat 服务器时,我遇到了同样的异常。 问题是,当我们访问tomcat的manager应用时,需要jsp页面来显示内容,而jsp页面是从work/Catalina/localhost/..文件夹中生成的类文件中渲染出来的。

我手动创建了工作目录,但问题仍然没有解决。

然后我意识到,因为我手动创建了工作目录tomcat7用户没有对该目录的写入权限。将工作目录的所有者从 root 更改为 tomcat7

sudo chown tomcat7 work

重启tomcatservice tomcat restart.

问题解决了。

希望对你有帮助

【讨论】:

  • 如果你删除了 tomcat 的缓存目录(例如/var/cache/tomcat/),也会出现同样的问题。由于某种原因,tomcat 不会自动重新创建它。相同的解决方案:手动创建,更新所有者,然后重新启动。
【解决方案3】:

如果您使用的是 Linux/Unix 并遇到此问题:

步骤:

注意用户和服务,在我的情况下,它是 tomcat,你的可能是其他任何东西......

1. mkdir work
2. sudo chown tomcat work  
3. service tomcat6 restart

【讨论】:

    【解决方案4】:

    我已经更改了工作目录的权限,它正在工作...

    步骤:
    1. 进入tomcat所在目录
    2.执行命令:
    sudo chmod 777 work

    【讨论】:

      【解决方案5】:

      首先作为你的启动tomcat作为root帐户,工作文件夹已经创建。你以tomcat账号运行tomcat,因为tomcat账号没有./work文件夹的权限,所以抛出异常。解决方法,ps删除./work,然后由tomcat用户重启tomcat。

      【讨论】:

      • 导致Starting Tomcat servlet engine: tomcat8/etc/init.d/tomcat8: 202: /etc/init.d/tomcat8: cannot create /var/lib/tomcat8/work/catalina.policy...y nonexistent,因此它不再尝试创建工作目录...您必须自己创建它。之后你仍然会得到IllegalStateException: No output folder,直到你自己创建Catalina目录。
      【解决方案6】:

      检查您的磁盘空间?

      当我的 / 分区已满时,我也收到此错误。释放一些磁盘空间为我消除了这个错误。

      【讨论】:

        【解决方案7】:

        授予 tomcat 目录的所有权限

        sudo chmod -R 777 /path/to/tomcat/directory
        

        我的是“/opt/tomcat/

        它对我有用。 希望对您有所帮助。

        注意:不要忘记sudo

        【讨论】:

          【解决方案8】:

          授予 tomcat 目录的完全权限,然后重新启动服务。它对我有用,我希望这对你也有用。

          【讨论】:

            【解决方案9】:

            这可能是因为缺少对缓存目录(Linux 上的 /var/lib/tomcat6)的写入权限。如果是这种情况,请使用以下命令授予完全访问权限并重新启动 Tomcat:

            sudo /etc/init.d/tomcat6 stop
            sudo chown -R tomcat6 /var/lib/tomcat6
            sudo chmod -R 777 /var/lib/tomcat6
            sudo /etc/init.d/tomcat6 start
            

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

            【讨论】:

              【解决方案10】:

              尝试完全重启服务器(如果适用)

              【讨论】:

                【解决方案11】:

                我遇到了同样的问题。原来是因为我把它放在 Program Files 中,而 Windows 没有让 Tomcat 做任何改变。我刚刚将 apache-tomcat 文件夹移到了不​​同​​的位置。

                【讨论】:

                • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
                【解决方案12】:

                De permissão total ao diretório apache。 No windows botão direito do mouse propriedades->seguranca->avançadas->permissões->adicionar

                【讨论】:

                  猜你喜欢
                  • 2018-12-01
                  • 1970-01-01
                  • 2013-09-16
                  • 1970-01-01
                  • 2019-03-15
                  • 1970-01-01
                  • 1970-01-01
                  • 2017-01-18
                  • 2012-11-25
                  相关资源
                  最近更新 更多