我正在尝试在Tomcat 7上启动我的Web应用程序,但每当我点击开始按钮时,我都会收到此错误:
失败 - 无法启动上下文路径/ Web上的应用程序
以下行添加到catalina.log
文件中:
2012年2月8日下午7:21:01 org.apache.catalina.core.StandardContext startInternal SEVERE:错误listenerStart 2012年2月8日下午7:21:01 org.apache.catalina.core.StandardContext startInternal SEVERE:Context [/ Web]启动由于先前的错误而失败
这是如何造成的?我该如何解决?
答案 0 :(得分:92)
我有类似的问题。 catalina.out记录了此日志消息
2013年4月17日下午5:14:46 org.apache.catalina.core.StandardContext start 严重:错误listenerStart
检查tomcat日志目录中的localhost.log (与catalina.out位于同一目录中),以查看导致此错误的异常。
答案 1 :(得分:12)
SEVERE:错误listenerStart
这归结为ServletContextListener
由@WebListener
注释在类上注册,或<listener>
中的web.xml
声明注册,已抛出未处理的异常在contextInitialized()
方法中。这通常是由开发人员的错误(一个错误)引起的,需要修复。例如,NullPointerException
。
完整的异常应该在特定于webapp的启动日志以及IDE控制台中显示,之前您已经复制的特定行。如果没有,并且您仍然无法通过查看代码来确定异常的原因,请将整个contextInitialized()
代码放在try-catch
中,其中您将异常记录到可靠的输出中然后相应地解释和修复它。
答案 2 :(得分:4)
对于Intellij Idea,有时会在不同位置生成localhost.log文件。对于例如你可以在homedirectory \ .IntelliJIdea14 \ system \ tomcat找到它。
如果您正在使用spring,则在调试模式下启动您的服务器,并将调试点放在org.springframework.context.support.AbstractApplicationContext的refresh()方法的catch块中。如果bean创建失败,您将能够看到异常。
答案 3 :(得分:2)
我在Spring网络应用程序中遇到了完全相同的问题。实际上,我通过注释配置注释删除了spring-security:
// @ImportResource({"/WEB-INF/spring-security.xml"})
但我忘记删除web.xml
中的相应过滤器:
<!-- Filters -->
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
评论过滤器解决了这个问题。
答案 4 :(得分:1)
这可能是由于配置侦听器时发生的一些原因造成的。最好的方法是记录并查看实际错误。您可以通过将logging.properties
文件添加到类路径的根目录来执行此操作,其中包含以下内容:
org.apache.catalina.core.ContainerBase.[Catalina].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].handlers = java.util.logging.ConsoleHandler
答案 5 :(得分:0)
选择&#34;所有项目&#34;然后右键单击
Maven-&GT;更新项目