我在Amazon EC2上安装了bitnam tomcat。我有2个.war文件,old.war
和new.war
一个,从同一个网络应用程序生成,但第二个应该更准确地工作,或者说更准确。第二个是由我自己生成的(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
?
可能是什么原因? P.S。
其中一个日志说这个
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
。
为什么找不到它?究竟没有找到什么?
答案 0 :(得分: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。