gpt4 book ai didi

java - 无法部署 apache tomcat web 应用程序 - 总是 404

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

我在 Amazon EC2 上安装了 bitnami tomcat。我有 2 个 .war 文件,old.warnew.war 一个,它们是从同一个网络应用程序生成的,但是第二个应该可以工作更恰当,或者更确切地说,准确。另外,第二个是我自己生成的 (jar -cvf my_new.war *),我有它的来源,而第一个是别人生成的。

我将它们放在 /opt/bitnami/apache-tomcat/webapps 中。第一个运行良好,至少在 Web 应用程序可以从 http://ec2-xx-xx-xx-xx.us-west-1.compute.amazonaws.com/访问互联网的意义上old/,不像新的总是在 http://ec2-xx-xx-xx-xx.us-west-1.compute.amazonaws.com/new/:

enter image description here

回顾一下:在 EC2,我以完全相同的方式部署它们。也许我没有正确生成 new.war

可能是什么原因?附:

其中一个日志是这样说的

Sep 28, 2015 4:41:19 AM org.apache.catalina.core.ApplicationContext log
INFO: SessionListener: contextDestroyed()
Sep 28, 2015 4:41:19 AM org.apache.catalina.core.ApplicationContext log
INFO: ContextListener: contextDestroyed()
Sep 28, 2015 4:41:45 AM org.apache.catalina.core.ApplicationContext log
INFO: Marking servlet myAppServet as unavailable
Sep 28, 2015 4:41:45 AM org.apache.catalina.core.StandardContext loadOnStartup
SEVERE: Servlet [myAppServet] in web application [/my_app] threw load() exception
java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1858)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1709)
at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:506)
at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:488)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:115)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1148)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1087)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5253)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5543)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1095)
at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1930)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

Sep 28, 2015 4:41:46 AM org.apache.catalina.core.ApplicationContext log
INFO: ContextListener: contextInitialized()
Sep 28, 2015 4:41:46 AM org.apache.catalina.core.ApplicationContext log
INFO: SessionListener: contextInitialized()
Sep 28, 2015 4:41:46 AM org.apache.catalina.core.ApplicationContext log
INFO: ContextListener: attributeAdded('org.apache.jasper.compiler.TldLocationsCache', 'org.apache.jasper.compiler.TldLocationsCache@528a709d')

我已将此日志中的原始名称更改为 my_app。为什么没有找到?到底是什么没找到?

最佳答案

由于我还没有足够的声誉来发表评论,所以我会在这里说。一个可能的原因是您的 WAR 文件没有分解(提取)。你能检查一下你的 webapps/目录是否有 webapps/new/目录吗?如果不是要尝试的一件事是重新启动 Tomcat。

此外,最好在部署 WAR 时使用 Tomcat 管理器,而不是手动将它们复制到 webapps 目录。这将确保分解 WAR 文件。如果失败,您会立即收到一条错误消息。通常可以通过 http://localhost:8080/manager 访问经理应用程序在 Tomcat 的本地安装中,所以它很可能在 http://ec2-xx-xx-xx-xx.us-west-1.compute.amazonaws.com/manager 中在你的情况下。

关于java - 无法部署 apache tomcat web 应用程序 - 总是 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32814995/

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