java - WAR 不会部署到 Tomcat 7.0.19

标签 java tomcat web-applications war web.xml

我有一个 Tomcat 不会部署的 WAR,虽然它通常会告诉我为什么它不会部署该应用程序的原因或一些指示,但 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 并部署了另一个我知道工作正常的 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

如果我的( super 简单的)web.xml 有问题,Tomcat 应该 会在日志输出中提示。如果我的 web.xml/ServletContextListener 没有问题,但是在我的 contextInitialized 方法中有什么东西抛出异常,catch block 将打印消息到控制台 - 但那没有发生。

关于可能是什么潜在问题或我必须开始诊断此问题的选项有什么想法吗?提前致谢!

最佳答案

您应该在您的方法中调用父类(super class)。

@Override
public void contextInitialized(ServletContextEvent servletContextEvent) {
        super.contextInitialized(servletContextEvent);

....

   @Override
    public void contextDestroyed(ServletContextEvent servletContextEvent) {
        super.contextDestroyed(servletContextEvent);
    }

另外,您可以确保提高 tomcat 服务器上的日志级别(可能集成 log4j) http://tomcat.apache.org/tomcat-7.0-doc/logging.html

迷海

关于java - WAR 不会部署到 Tomcat 7.0.19,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10950649/

相关文章:

java - JSP (tomcat) 中的 Facebook Connect 示例

django - 学习 Django 1.5 的最佳方式是什么?

javascript - HTML绘制流程图

iphone - jQuery Mobile - 后退按钮在 Web 应用程序中不起作用

java - HashMap 初始化参数(load/initialcapacity)

Java邮件 : TLS on port 25 with separate truststore possible?

JAVA客户端-服务器游戏

spring-boot tomcat 只能提供不到 10,000 个连接?

java - 如何在Java程序中将列名转换为变量?

java - 由 com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#5 产生的 NullPointerException