2016-03-06 82 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版本重新编译您的项目。