0

我的 Jboss Seam 应用程序在本地环境中运行良好,但是当我尝试在远程 Jboss 上部署它时,一些页面重定向到调试页面,但出现以下异常:

Exception during request processing:
Caused by javax.servlet.ServletException with message: "Servlet execution threw an exception" 
java.lang.NoSuchMethodError: org.richfaces.component.UIColumn.getFilterMethod()Ljavax/el/MethodExpression;

本地和远程 Jboss 版本相同:4.2.3.GA,我使用 Seam(两台服务器上的版本相同)2.2.2.Final 和 Richfaces 3.3.3.Final 与 JSF 1.2,文件相同,我确定是因为我将它们复制到了远程服务器,唯一的区别是操作系统,我的本地服务器运行的是 Windows Server 2003 R2 32 位,而远程服务器运行的是 Ubuntu Server 12.04 64 位。Ubuntu Server 和 Jboss 或任何其他这些工具是否存在任何已知问题?

更新:我在 Windows 服务器上使用 Oracle 的 jdk1.6.0_26,在 Ubuntu 服务器上使用 openjdk-7-jdk 7u7-2.3.2-1ubuntu0.12.04.1

4

3 回答 3

1

将表达式语言“EL”升级到应与 JSF 1.2 结合使用的版本。这看起来是 EL 1.2,也许您可​​以从 JBoss AS5 安装档案中下载/提取它(因为它是 EE5 的一部分)。

或使用旧安装复制/比较文件。在 Linux 上cmp file1.jar file2.jar

http://docs.oracle.com/javaee/5/api/javax/el/package-summary.html

这证实了该方法在随 EE5 标准集一起提供的 EL 1.2 中可用。

JBoss AS 4.x 不支持 EE5。所以你必须手动升级它(在旧安装中),它通常与 JSF 一起升级。

以前的 JavaEE 中没有 EL,但之前的 Servlet Spec 2.3 中有 EL(如此处所示)http://docs.oracle.com/javaee/1.4/tutorial/doc/JSPIntro7.html

于 2012-09-21T14:47:42.967 回答
0

看起来getFilterMethod()UIColumn 类中缺少该方法,因此这可能是 RichFaces jar 的问题。有关如何检查 RichFaces 版本是否在两个部署中都是正确的版本,请参阅此页面。无论如何,请使用其他人提到的命令来查找 RichFaces jar。

于 2012-09-21T17:28:05.997 回答
0

我在 WEB-INF/lib 找到了两个 jar,来自我正在使用的 Richfaces 的不同版本(4.0)(3.3.3),通过删除它们并重新启动服务器解决了问题。

于 2012-09-24T16:54:59.427 回答