【问题标题】:Jboss Server migration causing Exception?Jboss 服务器迁移导致异常?
【发布时间】:2012-09-13 23:56:31
【问题描述】:

我的 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 Server 上使用 Oracle 的 jdk1.6.0_26,在 Ubuntu Server 上使用 openjdk-7-jdk 7u7-2.3.2-1ubuntu0.12.04.1

【问题讨论】:

  • 您运行的是哪个版本的 el-impl / el-api?您需要在 AS 类路径中将其升级到与 JSF 1.2 一起使用的版本(如果那是您正在使用的 JSF)我的猜测是您需要确认 EL 版本 1.2 已安装。
  • @DarrylMiles 之前没有检查EL版本,因为我从来没有遇到过问题,并且已经上传到远程服务器,那么如何检查EL版本?
  • 使用find /abspath/jboss.4.2.3.GA -type f -iname "*el*.jar" ..在Linux上搜索文件*el-impl* *el-api* *jboss*el* *el* ...然后解压缩(或'jar -xvf')到目录检查META-INF/MANIFEST.MF

标签: seam jsf-1.2 jboss-4.2.x


【解决方案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

【讨论】:

  • 我仍然不明白的是为什么在 Ubuntu 服务器上会抛出异常,而在 windows 中,使用完全相同的文件,它不会发生
  • 也许您应该降级到 JDK6(即在 /opt/ 中下载并解压适用于 linux 的 Sun/Oracle JVM)。 JBoss AS 4.x 从什么时候开始通过 Java7 认证? IIRC AS 5.x 勉强使 Java6 和 AS 6.x 勉强使 Java7 和 AS7.x 最终获得完整和推荐的 Java7 支持。阅读发行说明sourceforge.net/project/… JBoss AS 4.2.3 几乎不支持 Java6。
  • 我降级到 Sun 的 JDK 6 并检查了每个 .jar 文件,它们看起来都还可以,还有什么可能?
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 2015-09-06
      • 2023-03-22
      • 2020-08-30
      • 2016-12-18
      • 1970-01-01
      • 2013-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多