【发布时间】:2015-11-04 17:33:48
【问题描述】:
我有一个希望部署在 Tomcat 上的 WAR。由于这个文件非常大(大约 150MB),我只是将它放到/usr/share/Tomcat7/webapps 中,以便在服务器重新启动时自动部署它。重新启动 tomcat 后,应用程序已正确部署,我可以使用 http://myhost:8080/myApp 访问该应用程序。但是webapps/myApp 下没有包含构建应用程序的文件的此类文件夹,存档文件仍然存在。
所以我想知道如果相应的文件夹甚至不存在,我如何更改该 web 应用程序中的任何文件(例如 webapps/myApp/WEB-INF 下的配置文件)。或者 webapp 是否在我不知道的任何其他文件夹中解压?
这是我的server.xml-文件:
<Server port="8005" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on"/>
<Listener className="org.apache.catalina.core.JasperListener"/>
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener"/>
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener"/>
<GlobalNamingResources>
<Resource name="UserDatabase" auth="Container" type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml"/>
</GlobalNamingResources>
<Service name="Catalina">
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="1024"
minSpareThreads="4"/>
<Connector executor="tomcatThreadPool" port="80" connectionTimeout="20000"
redirectPort="443" protocol="org.apache.coyote.http11.Http11NioProtocol"/>
<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https"
secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="conf/certificate.jks"
keystoreType="JKS" keystorePass="ciardi25" keyPass="ciardi25"/>
<Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"
startStopThreads="0">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b"/>
</Host>
</Engine>
</Service>
</Server>
编辑:catalina.out 还指出,该应用已成功部署,因为该文件中有许多由我的应用编写的 cmets。
编辑:操作系统是 Amazon Linux AMI
【问题讨论】:
-
乍一看您的配置似乎是正确的。您检查日志文件是否有任何错误?
-
考虑
catalina.out没有任何意义。 webapp 将一些消息写入日志文件,确认它已经设置并且工作正常。我只看到一些警告抱怨An attempt was made to authenticate the locked user "root"(相应地针对admin、manager和tomcat)。 -
不确定您使用的是哪种 Unix,但在 Ubuntu 上,我通常将 war 文件放在
/var/lib/tomcat7/webapps/下。我在某处读到该目录有所作为。所以你可以试试。 -
为此我想我应该首先获取一个目录。但是没有,所以删除 WAR 可能会删除应用程序本身,不是吗?