自java 8以来,tomcat日志中的"位置X处的未知类型常量池"

gfy*_*ser 8 java jsf tomcat jsf-2 tomcat8

我在Tomcat服务器上部署了一个基于Java JSF2 Web的应用程序,自从我们转移到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
Run Code Online (Sandbox Code Playgroud)

我尝试了不同的东西来修复这个警告,但它总会回来.

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

fou*_*guy 6

从我的研究看来,这是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 /

或者使用(2.3.0-m02或更高版本)更新maven POM依赖关系:

<groupId>org.glassfish</groupId>
<artifactId>javax.faces</artifactId>
<version>2.3.0-m02</version>
Run Code Online (Sandbox Code Playgroud)

  • 注意:报告的错误的链接不再起作用.重新定位到https://github.com/javaserverfaces/mojarra/issues/3736和https://github.com/javaserverfaces/mojarra/issues/3780 (2认同)

Jav*_*ios 5

我提出了同样的问题

今天,我将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>
Run Code Online (Sandbox Code Playgroud)