我有一个WAR文件,Tomcat无法部署它。通常情况下,它会给出原因或某些指示,说明为什么无法部署该应用程序,但是Tomcat的catalina日志输出只显示:
SEVERE: Context [/appmon-qa] startup failed due to previous errors
这是 web.xml
文件内容:
<?xml version="1.0" encoding="UTF-8"?>
<web-app
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<!-- The display name of this web application -->
<display-name>AppMonitor</display-name>
<listener>
<listener-class>
com.me.myorg.appmon.AppMonitor
</listener-class>
</listener>
</web-app>
还有 AppMonitor
类中的重要内容:
public class AppMonitor implements ServletContextListener {
@Override
public void contextDestroyed(ServletContextEvent event) {
return;
}
@Override
public void contextInitialized(ServletContextEvent event) {
try {
// Guts of my monitor app
} catch(Exception exc) {
System.out.println("Something bad happened!\n" + exc.getMessage());
}
}
}
而且日志输出非常模糊/没有描述:
INFO: Deploying web application archive appmon-qa.war
Jun 8, 2012 9:45:30 AM org.apache.catalina.core.StandardContext startInternal
SEVERE: Error listenerStart
Jun 8, 2012 9:45:31 AM org.apache.catalina.core.StandardContext startInternal
SEVERE: Context [/appmon-qa] startup failed due to previous errors
Jun 8, 2012 9:45:31 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory docs
Jun 8, 2012 9:45:31 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory examples
Jun 8, 2012 9:45:32 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory host-manager
Jun 8, 2012 9:45:32 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory manager
Jun 8, 2012 9:45:32 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory ROOT
Jun 8, 2012 9:45:32 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8080"]
Jun 8, 2012 9:45:32 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
Jun 8, 2012 9:45:32 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-nio-8010"]
Jun 8, 2012 9:45:32 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 2875 ms
我已经取消部署这个WAR包并且部署了另一个我知道能正常工作的,Tomcat 7.0.19也成功启动,因此我确定这不是Tomcat的配置问题。这显然是由于我的WAR包出了问题。目录结构如下:
appmon-qa.war/
META-INF/
MANIFEST.MF
WEB-INF/
classes/
All of my binaries
lib/
All JAR dependencies
web.xml
如果我的(超级简单的)
web.xml
出了问题,Tomcat应该会在日志输出中抱怨。如果我的web.xml / ServletContextListener
没问题,但是在我的contextInitialized
方法内部有些东西抛出了异常,那么catch
块将会打印消息到控制台——但这并没有发生。你有什么想法关于可能的潜在问题或者开始诊断的选项吗?谢谢!
public contextDestroyed(ServletContextEvent event)
吗?void
在哪里? - Petar Minchev