【问题标题】:Cannot deploy an apache tomcat web application - always 404无法部署 apache tomcat Web 应用程序 - 总是 404
【发布时间】:2015-12-25 05:21:22
【问题描述】:

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

我把它们放在/opt/bitnami/apache-tomcat/webapps。第一个运行良好,至少在某种意义上说,webapp 可以通过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/ 返回:

回顾一下:在 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。 为什么找不到?究竟是什么没找到?

【问题讨论】:

标签: java maven tomcat amazon-web-services amazon-ec2


【解决方案1】:

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

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

【讨论】:

  • 经理要我提供凭据。哪些凭据?从我的亚马逊帐户?他们不工作。
  • 你安装tomcat的时候设置了吗?你用的是tomcat 7吗?凭据在配置文件 (/conf/tomcat-users.xml) 中设置。见mkyong.com/tomcat/tomcat-default-administrator-password - 它需要有这样的东西:
  • 顺便说一句,我刚刚阅读了您对问题的更新。查看堆栈跟踪,这似乎是缺少依赖项的情况。你在使用 Maven 吗?如果没有,您应该在打包的 WAR 中包含 JAR 文件。看看这个线程:stackoverflow.com/questions/17381026/…
猜你喜欢
  • 2012-12-01
  • 2016-11-15
  • 2012-11-02
  • 2014-11-02
  • 2012-12-28
  • 1970-01-01
  • 2017-11-09
  • 2011-08-11
  • 1970-01-01
相关资源
最近更新 更多