gpt4 book ai didi

tomcat - 已部署 Web 应用程序但 webapps 中没有文件夹

转载 作者:行者123 更新时间:2023-11-28 22:53:26 25 4
gpt4 key购买 nike

我有一个希望部署在 Tomcat 上的 WAR。由于这个文件很大(大约 150MB),我只是将它放入 /usr/share/Tomcat7/webapps 以在服务器重新启动时自动部署它。重新启动 tomcat 后,应用程序已正确部署,我可以使用 http://myhost:8080/myApp 访问该应用程序。但是 webapps/myApp 下没有这样的文件夹包含构建应用程序的文件,archieve-file 仍然存在。

所以我想知道如果适当的文件夹甚至不存在,我如何更改该 webapp 中的任何文件(例如 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 &quot;%r&quot; %s %b"/>

</Host>
</Engine>
</Service>
</Server>

编辑:catalina.out 还指出,该应用程序已成功部署,因为文件中有许多由我的应用程序编写的注释。

编辑:操作系统是 Amazon Linux AMI

最佳答案

如果 Tomcat 是通过一些包管理器安装的,它的文件通常分布在几个目录中,比如 /usr/share/tomcatX/, /var/lib/tomcatX//etc/tomcatX

如果您的包已使用 apt 部署,您可以尝试 dpkg-query -L tomcat7 查看属于安装的所有路径。对于 rpm,它是 rpm -ql tomcat7。从输出中,您可以确定哪个目录实际上是安装的一部分,哪个不是。

这里有一个 Debian 安装,它在 /var/lib/tomcat7/webapps 中有它的 webapps 文件夹。也许你应该检查这个目录是否也包含你的 webapp。为什么 Tomcat 似乎将 WAR 打包到不同的文件夹,但仍然是个谜。您是否正在使用一些 /etc/init.d/tomcat7 来启动/停止它?如果是这样,您可能想看看该脚本及其在启动时的作用。

关于tomcat - 已部署 Web 应用程序但 webapps 中没有文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33480751/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com