Tomcat 作为服务启动时,Tomcat webapp 无法启动

Tomcat 作为服务启动时,Tomcat webapp 无法启动

我有一个 Web 应用程序无法在 Linux 安装的 Tomcat 中启动。该应用程序可以在不同机器上的不同 Tomcat 上工作,也可以在同一台机器上使用独立 Tomcat 工作。

该问题似乎是由于 Tomcat 的启动方式造成的。

  • service tomcat8 start通过包管理器安装 Tomcat 时使用失败;
  • /etc/init.d/tomcat8 start通过包管理器安装 Tomcat 时使用失败;
  • 使用独立的 tomcat 并以service tomcat8 start(已修改的/etc/init.d/tomcat8) 启动失败;
  • 使用独立的 tomcat 并开始使用./startup.sh工作。

我正在使用 Debian 8、Tomcat 8.0.11(但尝试过 8.0.9 和 8.0.11)和各种版本的 Java。应用程序因名为阿托米克斯。错误是:

严重:向类 uk.co.prodia.talkingcouch.ApplicationContextListener 的监听器实例发送上下文初始化事件时发生异常 org.springframework.beans.factory.BeanCreationException:在类路径资源 [config/applicationContext-db-sessionfactory.xml] 中定义名称为“transactionManager”的 bean 时出错:设置 bean 属性“transactionManager”时无法解析对 bean“atomikosTransactionManager”的引用;嵌套异常是 org.springframework.beans.factory.BeanCreationException:在类路径资源 [config/applicationContext-db-sessionfactory.xml] 中定义名称为“atomikosTransactionManager”的 bean 时出错:调用 init 方法失败;嵌套异常是 javax.transaction.SystemException:事务服务未在 org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:359)上运行,在 org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:108)上运行,在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1481)上运行

有没有人有什么建议?

答案1

通常管理脚本从脚本本身、/etc/tomcat8 中的文件甚至 /etc/default/tomcat(8) 读取附加属性

确保从 startup.sh 和管理脚本发出的带有参数的命令导致相同的调用。

您可以尝试获取参数 ps -fp cat /proc//cmdline

答案2

TheCodeKiller 让我思考的方向正确。这最终是一个权限问题,我自己的实例只能在 处运行,并且以 的身份运行。通过比较每个正在运行的进程的输出,root这一点显而易见。ps

Atomikos 正在将其日志文件写入只有 root 可写入的$CATALINA_BASE位置。/var/lib/tomcat8

事实证明,Atomikos 改变了处理日志的方式,因此我必须:

  • 删除了该属性com.atomikos.icatch.output_dir
  • 已删除该属性com.atomikos.icatch.log_base_dir

然后将以下内容添加到log4j.xml

<appender name="tc-core-atomikos" class="org.apache.log4j.RollingFileAppender">
    <param name="File" value="/stroage/www/tc/data/atomikos/tmout"/>
    <param name="MaxFileSize" value="1MB"/>
    <param name="MaxBackupIndex" value="5"/>
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="tc-core-atomikos => [log level: %-5p] [thread: %t] [%d{dd MMM yyyy HH:mm:ss}]%n    %c %M%n        %m%n%n"/>
    </layout>
</appender>

<logger name="com.atomikos">
    <level value="ERROR"/>
    <appender-ref ref="tc-core-atomikos"/>
</logger>

相关内容