如何让tomcat爆炸战争文件

时间:2013-02-27 13:48:26

标签: java jsp tomcat servlets tomcat7

参考tomcat and extracted files 我已将server.xml配置为auto deploy : true。 我的war文件名是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

更新II

我看到的一个问题是:

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 错误(不存在)

2 个答案:

答案 0 :(得分:10)

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

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

你不应该chmod 777文件夹,这是你正确推测的安全风险。 'chown tomcat7:tomcat7'应该可以工作。

答案 1 :(得分:1)

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

  

如果您希望放置在Web应用程序中,请设置为true   appBase目录作为Web应用程序归档(WAR)文件   unpacked到相应的磁盘目录结构,false运行   这样的Web应用程序直接来自WAR文件。 WAR文件位于   在主持人的appBase之外不会扩展。

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