2016-03-06 70 views
2

沒有檢測到春天WebApplicationInitializer類型我使用Eclipse和Tomcat的插件Maven的Maven插件。當我用它來「清潔tomcat7:部署」我的hello.war到本地主機上的Tomcat 8服務器時,它工作正常。我可以去localhost:8080/hello/hello,看到「你好!」頁。Tomcat的8 - 類路徑

但是,當我在本地網絡部署到Ubuntu的服務器15.10,去192.168.1.2:8080/hello/hello我得到的Apache Tomcat的404錯誤。儘管tomcat管理器顯示部署正常,我的應用程序正在運行。

我的想法被認爲有毛病Ubuntu的Tomcat服務器,但是當我部署其他應用程序在Ubuntu同樣的Tomcat服務器,他們因爲他們應該工作。然後我認爲這個問題出現在我的「你好」的應用程序中。但如果是這樣的話,我將無法在我的localhost tomcat服務器上成功運行它!

當我看到Ubuntu的服務器上的Tomcat日誌他們說:

06-Mar-2016 10:00:00.369 INFO [http-nio-8080-exec-5] org.apache.catalina.core.ApplicationContext.log Manager: deploy: Deploying web application '/hello' 
06-Mar-2016 10:00:00.370 INFO [http-nio-8080-exec-5] org.apache.catalina.core.ApplicationContext.log Manager: Uploading WAR file to /var/lib/tomcat8/webapps/hello.war.tmp 
06-Mar-2016 10:00:18.022 INFO [localhost-startStop-3] org.apache.catalina.core.ApplicationContext.log No Spring WebApplicationInitializer types detected on classpath 

所以現在看來​​似乎無法找到實現了Spring WebApplicationInitializer界面我Bootstrap.class類。雖然當我檢查文件夾/ var/lib/tomcat8/webapps/hello/WEB-INF/classes時,它包含它應該包含的所有類。

我檢查了日誌localhost,他們不會抱怨這件事。

所以最終看來,Ubuntu的服務器上的Tomcat 8找不到提到WebApplicationInitializer。 我已經閱讀了類似的問題在這裏stackoverflow的答案和嘗試,但其中大部分是處​​理eclipse服務器設置,我的問題在這裏是不同的,我認爲。

做什麼和在哪裏看?

編輯:

當我通過本地主機/經理手動部署hello.war,一切正常。裏面localhost.2016-03-06.log我:

06-Mar-2016 11:34:33.081 INFO [http-nio-8080-exec-51] org.apache.catalina.core.ApplicationContext.log Spring WebApplicationInitializers detected on classpath: [[email protected]] 
06-Mar-2016 11:34:33.544 INFO [http-nio-8080-exec-51] org.apache.catalina.core.ApplicationContext.log Initializing Spring root WebApplicationContext 
06-Mar-2016 11:34:34.026 INFO [http-nio-8080-exec-51] org.apache.catalina.core.ApplicationContext.log Initializing Spring FrameworkServlet 'springDispatcher' 

我可以去本地主機:8080 /你好/您好,看到 「Hello!」問候。

當我與Ubuntu服務器的Tomcat /經理同內部日誌我:

06-Mar-2016 11:36:06.555 INFO [http-nio-8080-exec-14] org.apache.catalina.core.ApplicationContext.log No Spring WebApplicationInitializer types detected on classpath 
06-Mar-2016 11:36:06.559 INFO [http-nio-8080-exec-14] org.apache.catalina.core.ApplicationContext.log HTMLManager: list: Listing contexts for virtual host 'localhost' 
+0

我會通過比較蘋果和蘋果啓動。在本地主機上部署war文件時會發生什麼情況,這與將其部署到ubuntu服務器上的方式相同(即不使用mvn tomcat7:部署) –

+0

我編輯了問題,並從本地主機端和從Ubuntu服務器端添加日誌。 –

回答

2

我曾經使用JDK1.8環境中編譯項目。

現在我使用JDK1.7重新編譯項目,我的Ubuntu服務器的Tomcat8開始認識到Bootstrap.class它實現WebApplicationInitializer接口。

所以,對我的回答是:

在Tomcat的/經理/ html頁面的底部,檢查你的Tomcat的JVM版本。 使用適當的JDK版本重新編譯您的項目。