我正在使用以下方式开发Web服务:
我通过将其作为ROOT上下文文件夹的扩展文件夹进行复制来部署我的Web应用程序。一切正常,但是当在Spring初始化期间无论出于何种原因(例如,在启动时连接到缓存服务),Web应用程序无法部署, Tomcat仍然报告成功启动消息:
INFO: Deployment of web application directory /opt/apache-tomcat-7.0.57/webapps/myapp/webapps/ROOT has finished in 20,547 ms
INFO: Server startup in 20591 ms
在相同的日志中,我之前可以看到异常堆栈跟踪,所以我意识到这是失败的:
INFO: Initializing Spring root WebApplicationContext
Jul 20, 2015 9:22:19 AM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'createTokenResource': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field:
....
Jul 20, 2015 9:22:19 AM org.apache.catalina.core.StandardContext startInternal
SEVERE: Error listenerStart
SEVERE: Context [] startup failed due to previous errors
然后我想知道为什么Tomcat报告这两者都是部署错误和成功。我一直在研究Catalina HostConfig#deployDirectory
的实现,似乎'默默地吞下'异常。
您可以假设此Web应用程序将是我的Tomcat服务器中运行的唯一应用程序。