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

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

这个问题似乎是由于Tomcat开始的方式。

  • 当通过包pipe理器安装Tomcat时,使用service tomcat8 start失败;
  • 当通过软件包pipe理器安装Tomcat时,使用/etc/init.d/tomcat8 start失败;
  • 使用独立的tomcat,并从service tomcat8 start (修改/etc/init.d/tomcat8 )失败;
  • 使用独立的tomcat并开始使用./startup.sh工作。

我正在使用Debian 8,Tomcat 8.0.11(但已尝试8.0.9和8.0.11)和各种版本的Java。 该应用程序由于一个名为Atomikosjava事务pipe理器而失败 。 错误是:

SEVERE:发送上下文初始化事件给类的监听器实例的exceptionuk.co.prodia.talkingcouch.ApplicationContextListener org.springframework.beans.factory.BeanCreationException:在类path资源[config / applicationContext-db -sessionfactory.xml]:设置bean属性'transactionManager'时,无法parsing对bean'atomikosTransactionManager'的引用; 嵌套的exception是org.springframework.beans.factory.BeanCreationException:在类path资源[config / applicationContext-db-sessionfactory.xml]中定义的名为'atomikosTransactionManager'的bean创build错误:调用init方法失败; 嵌套exception是javax.transaction.SystemException:事务服务没有在org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:359)上运行org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver .java:108)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1481)

有没有人有什么build议?

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

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

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

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

Atomikos正在将它的日志文件写到$CATALINA_BASE ,该文件位于/var/lib/tomcat8 ,它只能被root写入。

事实certificate,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>