自Java 8以来,Tomcat日志中出现了“位置X处的未知类型常量池”错误。

13

我有一个基于Java JSF2的Web应用程序,部署在Tomcat服务器上。自从我们升级到Java 8 / Tomcat 8之后,这个错误在Tomcat输出中频繁出现:

déc. 05, 2016 10:51:07 AM com.sun.faces.config.JavaClassScanningAnnotationScanner$ConstantPoolInfo containsAnnotation
GRAVE: Unknow type constant pool 0 at position 178

我尝试了很多方法来解决这个警告,但它总是出现。

这个日志是任何问题的症状吗?还是只是正常的输出?有没有办法解决这个问题?


3
在英语中,错误信息是_SEVERE_(而不是GRAVE)。 - Cœur
3个回答

12

我遇到了同样的问题。

今天我把我的pom.xml文件更新到jsf版本2.2.15,然后那个错误日志消失了。

<dependency>
   <groupId>com.sun.faces</groupId>
   <artifactId>jsf-api</artifactId>
   <version>${jsf.version}</version>
   <scope>provided</scope>
</dependency>

<dependency>
   <groupId>com.sun.faces</groupId>
   <artifactId>jsf-impl</artifactId>
   <version>${jsf.version}</version>
   <scope>provided</scope>
</dependency>

8
根据我的研究,这似乎是JSF实现中的一个错误,并已在JSF版本2.3.0-m02中修复。
报告的错误: http://github.com/javaserverfaces/mojarra/issues/3736 https://github.com/javaserverfaces/mojarra/issues/3780 获取修复后的JSF实现版本: http://repo1.maven.org/maven2/javax/faces/javax.faces-api/2.2/ http://repo1.maven.org/maven2/org/glassfish/javax.faces/2.3.0-m02/ 或更新maven POM依赖(使用2.3.0-m02或更高版本):
<groupId>org.glassfish</groupId>
<artifactId>javax.faces</artifactId>
<version>2.3.0-m02</version>

2
注意:报告的错误链接已经失效。已迁移到 https://github.com/javaserverfaces/mojarra/issues/3736 和 https://github.com/javaserverfaces/mojarra/issues/3780。 - Jidehem
1
我已经修改了答案以反映新的URL。 - Brian Agnew
注意:所报告的错误链接不再起作用(再次)。已转移到https://github.com/eclipse-ee4j/mojarra/issues/3736和https://github.com/eclipse-ee4j/mojarra/issues/3780。 - gogognome

3

我曾经遇到同样的问题。将我的pom.xml文件更新至2.2.11之后,问题得到了解决。

<groupId>com.sun.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>2.2.11</version>

<artifactId>jsf-impl</artifactId>
<version>2.2.11</version>

在某些托管的Bean中,postConstruct未被执行,且没有任何错误。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接