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

Deployed Web-App but no folder within webapps

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

所以我想知道如果相应的文件夹甚至不存在,我如何更改该 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 还指出,该应用程序已成功部署,因为文件中有许多评论是我的应用程序编写的。

编辑:OS 是亚马逊 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 换 starting/stopping 吗?如果是这样,您可能想看看该脚本及其在启动时的作用。