37

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

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

但是我无法运行该项目,因为我在打开我的第一个登录页面时遇到了以下错误。当我现在在 Windows 上部署代码或 web.xml 文件时,是否需要对代码或 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.
4

12 回答 12

60

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

于 2013-08-27T13:58:49.040 回答
21

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

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

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

sudo chown tomcat7 work

重启Tomcat service tomcat restart

问题解决了。

希望这可以帮助

于 2015-01-12T12:44:58.300 回答
7

如果您在 Linux/Unix 上并面临问题:

脚步:

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

1. mkdir work
2. sudo chown tomcat work  
3. service tomcat6 restart
于 2015-04-28T11:41:36.470 回答
2

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

于 2015-07-17T04:04:53.987 回答
2

检查您的磁盘空间?

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

于 2016-03-21T14:51:22.523 回答
2

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

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

于 2018-04-04T20:11:13.623 回答
0

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

于 2017-08-10T08:03:40.060 回答
0

授予对 tomcat 目录的所有权限

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

我的是“ /opt/tomcat/

它对我有用。希望能帮助到你。

注意:不要忘记sudo

于 2019-11-14T06:17:44.957 回答
0

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

于 2021-12-04T16:10:34.660 回答
-1

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

于 2017-04-20T10:23:53.280 回答
-1

这可能是因为缺少对缓存目录(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 从头开始​​创建一个新目录来修复它。

于 2017-06-05T11:57:50.977 回答
-1

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

于 2020-06-07T22:45:59.247 回答