2015-09-28 76 views
0

我已經在Amazon EC2上安裝了bitnami tomcat。我有兩個.war文件,old.warnew.war,這些文件是從同一個網絡應用程序生成的,但第二個文件應該更加正確,或者更確切地說,是工作的。另外第二個是我自己生成的(jar -cvf my_new.war *),我有它的來源,而第一個由別人。無法部署apache tomcat web應用程序 - 總是404

我把它們放在/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

可能是什麼原因? 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', '[email protected]') 

我在這篇日誌改變了原來的名字my_app。 爲什麼找不到?究竟發現了什麼?

+0

日誌說什麼? – Kishore

+0

@Kishore,哪一個?有幾個。 –

+0

我想'$ TOMCAT_HOME/logs /下的'catalina.out'文件。 更多關於這裏 - http://wiki.apache.org/tomcat/FAQ/Logging – Kishore

回答

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

+0

是的,它確實... –

+0

經理要求我提供憑證。哪些憑據?從我的亞馬遜帳戶?他們不工作。 –

+0

您是否在安裝tomcat時設置了它?你在使用tomcat 7嗎?憑證在配置文件中設置( /conf/tomcat-users.xml)。請參閱http://www.mkyong.com/tomcat/tomcat-default-administrator-password/ - 它需要具有這樣的內容: ionic

相關問題