【发布时间】:2011-05-03 12:04:03
【问题描述】:
我正在尝试在 Ubuntu 系统上部署网络应用。 WAR 是一个EXPLODED 文件夹。 构建没有问题。但我无法部署到 Tomcat6 服务器。一切正常。 相同的代码,相同的文件。突然间,无法部署。
我现在发现的主要区别是 - 日志 at /var/lib/tomcat6/logs - localhost.2010-11-01.log被锁定并且只能由root用户打开。不明白为什么?
由于这个问题,我收到以下错误(来自 localhost.2010-11-01.log):
严重:向 org.springframework.web.context.ContextLoaderListener 类的侦听器实例发送上下文初始化事件的异常
我的问题与
有关吗BeanCreationException in Spring Framework .WAR deploy to Tomcat 6 on Ubuntu 9.10?
更新1: Tomcat 日志被 root 用户读取的问题现在已经消失了。但是,这些错误仍然存在。
严重:向 org.springframework.web.context.ContextLoaderListener 类的侦听器实例发送上下文初始化事件的异常
org.springframework.beans.factory.BeanCreationException:创建 ServletContext 资源 [/WEB-INF/applicationContext.xml] 中定义的名称为“非洲”的 bean 时出错: 设置 bean 属性“南极洲”时无法解析对 bean“南极洲”的引用;嵌套异常是 org.springframework.beans.factory.BeanCreationException:在 ServletContext 资源 [/WEB-INF/applicationContext.xml] 中创建名称为“南极洲”的 bean 时出错: 设置 bean 属性“target”时无法解析对 bean“australia”的引用;嵌套异常是 org.springframework.beans.factory.BeanCreationException:在 ServletContext 资源 [/WEB-INF/applicationContext.xml] 中定义名称为“australia”的 bean 创建错误: init 方法调用失败; 嵌套异常是 java.lang.Exception:意外的行
警告:mysql_connect():失去与MySQL 服务器在...中查询期间。#ERROR:Too Many Connections!
更新 2:
刚刚打开我的 Ubuntu 系统。目前只有firefox运行。没有运行 Eclipse 或其他软件。没有关闭或重新启动 Tomcat。刚刚尝试通过 Tomcat 管理器应用程序 (http://localhost:8080/manager/html) 启动 Web 应用程序 - 与我之前尝试过的相同。
结果:网络应用启动没有问题!
我完全不知道为什么这在之前不起作用。此外,不知道为什么它现在可以工作,如果有严重的问题的话。我浪费了一整天:(。
【问题讨论】:
-
您是否尝试过简单地将展开的 WAR 文件夹复制到 Tomcat 安装下的“webapps”目录?
-
@Bernard:WAR 文件夹路径已通过 /etc/tomcat6/Catalina/localhost 中的 xml 文件正确提及 - 无需复制到 webapps 文件夹。同样的设置之前一直在工作。
-
@van 确保爆炸战争中的所有文件都可由tomcat用户执行。您可能想尝试将战争放在 webapps 目录中,如果它不存在,就像@bernard 建议的那样。
-
@van,也一定要在重启前彻底关闭tomcat。
-
@van 应该可以工作。你应该使用 ps aex | grep java 以确保所有 java 进程都已停止。我想知道tomcat是否仍在运行并锁定了一个文件。此外,请尝试遵循@bernard 的建议进行诊断。如果这些都不起作用,请尝试下载 tomcat zip,在您的主目录中解压缩并在那里部署。也许系统 tomcat 实例已被冲洗。