Displaytag + Tomcat->静默故障

问题描述 投票:0回答:1

我正在尝试恢复大约10年的项目。

这是一个用于在Tomcat 6中正常运行的Java Web应用程序。有一小部分模块集群,它们分别使用Java 5和Java 6分别由Ant和Maven构建。

我现在已经使用Java 6将它们全部正确地使用Maven构建,并部署到Tomcat 7,试图针对相同版本的依赖项-只是在尝试升级之前使其运行。

某些JSP页面使用DisplayTag 1.2。如果我的Maven版本包括displaytag依赖项,则该Webapp无法运行。日志中没有错误。它只是报告404到处。如果我从Maven构建中排除displaytag,则一切正常,除了需要DisplayTag的JSP页面。

[如果我尝试在Tomcat 6中运行Web应用程序,则会因commons-logging和slf4j之间的不兼容而产生异常。

如果Webapp像这样静默失败,日志中没有错误或异常,我应该怀疑或调查什么?

java tomcat7 tomcat6 displaytag
1个回答
0
投票

因此,包括displaytag依赖关系会导致所有jsp的jsp编译均失败,从而导致webapp没有任何视图,因此没有404。至少一个非常合理的事件序列。

根据this,可以在tomcat的localhost_log.xxx文件中看到任何JSP编译异常。但是,同一线程继续抱怨没有信息或信息不足,这可能意味着您的日志记录配置不正确。

为此,您可能需要设置logging bridge

由于您正在使用slf4j,但是其他组件正在使用commons-logging,因此您正在丢失其他组件的日志信息。为此,您包含commons-logging,但作为provided,因此不会被其他库引入。

<dependency>
  <groupId>commons-logging</groupId>
  <artifactId>commons-logging</artifactId>
  <version>1.1.1</version>
  <scope>provided</scope>
</dependency>

然后包含jcl-over-slf4j(这就是我们上面承诺的提供commons-logging的内容)。

<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>jcl-over-slf4j</artifactId>
  <version>2.0.0-alpha2-SNAPSHOT</version>
</dependency>

这应该允许使用commons-logging的组件将其日志桥接到slf4j(以及实际的实现,logback或其他方式)。

这里是Jasper其他配置文件的link,如果需要的话。

© www.soinside.com 2019 - 2024. All rights reserved.