5

参考tomcat 和提取的文件 ,我已将 server.xml 配置为auto deploy : true. 我的战争文件名是 ROOT.war,因为我不想在 site.com 之后使用 /subdir。

但我在 /webappts/ROOT 或任何地方都看不到 .css .js .java 或 .class 文件。(我将它们放在 ROOT.war 中,并且站点运行良好,可以反映它们)

我只看到 .class 和 .java

/var/cache/tomcat7/Catalina/localhost/_/org/apache/jsp/

/var/cache/tomcat7/Catalina/localhost/_/WEB-INF/classes/

如何配置tomcat来爆炸.war文件?

更新一

我有Host name="localhost" appBase="/home/ubuntu/www" unpackWARs="true" autoDeploy="true" ,但我仍然没有看到拆包。我的 ROOT.war 在 /home/ubuntu/www

更新二

我看到的一个问题是:

Feb 27, 2013 6:29:02 PM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive /home/ubuntu/www/ROOT.war
Feb 27, 2013 6:29:02 PM org.apache.catalina.startup.ContextConfig init
SEVERE: Exception fixing docBase for context []
java.io.IOException: Unable to create the directory [/home/ubuntu/www/ROOT]
        at org.apache.catalina.startup.ExpandWar.expand(ExpandWar.java:100)
        at org.apache.catalina.startup.ContextConfig.fixDocBase(ContextConfig.java:720)
        at org.apache.catalina.startup.ContextConfig.init(ContextConfig.java:843)

如果我使用 chmod 777在 /home/ubuntu/www/ 中手动创建 ROOT 。它给出404错误(不存在)

4

2 回答 2

10

您的/home/ubuntu/www文件夹需要可被 Tomcat 进程写入。所有者和组应该是tomcat6/tomcat7(取决于您使用的 TC)。像这样:

drwxrwxr-x  4 tomcat7 tomcat7 4096 Feb 27 14:08 webapps

您不应该chmod 777使用该文件夹,正如您正确推测的那样,这是一个安全风险。chown tomcat7:tomcat7应该管用。

于 2013-02-27T20:22:18.993 回答
1

您需要确保unpackWARs==true已设置。

如果您希望将作为 Web 应用程序归档 (WAR) 文件放置在 appBase 目录中的 Web 应用程序解压缩到相应的磁盘目录结构中,则设置为 true,如果希望直接从 WAR 文件运行此类 Web 应用程序,则设置为 false。位于主机的 appBase 之外的 WAR 文件不会被扩展。

来源:http: //tomcat.apache.org/tomcat-6.0-doc/config/host.html#Standard_Implementation

于 2013-02-27T14:49:04.210 回答