我正在重构一个简单的网络项目,最初使用icefaces-ee 1.8和icepush,然后上传到icefaces-ee 3.3.0 with icepush,但实际上从未需要它们。我正在将'ee'库替换为社区库,并将icepush功能放到一个简单的icefaces项目中。 我的maven icefaces依赖是:
<dependency>
<groupId>org.icefaces</groupId>
<artifactId>icefaces</artifactId>
<version>3.3.0</version>
<exclusions>
<exclusion>
<groupId>org.icepush</groupId>
<artifactId>icepush</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.icefaces</groupId>
<artifactId>icefaces-compat</artifactId>
<version>3.3.0</version>
</dependency>
<dependency>
<dependency>
<groupId>org.icefaces</groupId>
<artifactId>icefaces-ace</artifactId>
<version>3.3.0</version>
</dependency>
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.faces</artifactId>
<version>2.1.28</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>javax.mail-api</artifactId>
<version>1.4.4</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.el</groupId>
<artifactId>javax.el-api</artifactId>
<version>2.2.1</version>
<scope>provided</scope>
</dependency>
它编译但是当我尝试将战争部署到glassfish 3时,我得到了这个错误 java.lang.NoSuchMethodError:org.icefaces.util.EnvUtils.getWarnBeforeExpiryInterval(Ljavax / faces / context / FacesContext;)
有效地,我看到在icefaces-3.3.0.jar中的类EnvUtils缺乏该方法。
哪个功能使用此功能?我该如何避免这个错误?
答案 0 :(得分:0)
其中一个解决方法是将ICEfaces升级到4.0.0。自版本4.0.0开始引入EnvUtils.getWarnBeforeExpiryInterval(FacesContext)
。
另见: