我在 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
我尝试了不同的方法来修复此警告,但它总是回来。
此日志是否是任何问题的征兆?这只是正常输出吗?有办法解决这个问题吗?
我也提出了同样的问题
今天我将 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>
根据我的研究,这似乎是 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>
我也遇到了同样的问题。我将 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>
postConstruct 没有在某些 ManagedBean 中执行,没有任何错误。
Eu consegui uma solução usando versão 2.2.2 do jsf
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<jetty.version>6.1.4</jetty.version>
<jsf.version>2.2.2</jsf.version>
</properties>
<!-- https://mvnrepository.com/artifact/com.sun.faces/jsf-api -->
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>${jsf.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.sun.faces/jsf-impl -->
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-impl</artifactId>
<version>${jsf.version}</version>
</dependency>