【问题标题】:Migrating from RichFaces 3.x to RichFaces 4.x causes error parsing a4j.taglib.xml从 RichFaces 3.x 迁移到 RichFaces 4.x 导致解析 a4j.taglib.xml 时出错
【发布时间】:2013-04-25 03:42:43
【问题描述】:

我已下载 richfaces-components-ui-4.3.1.Final.jar 并将其粘贴到 /WEB-INF/lib 文件夹以及 RichFaces 4 所需的其他 JAR。尽管如此,我在部署过程中遇到以下错误:

java.io.IOException: Error parsing jar:file:/C:/new_jboss-portal-2.7.2/jboss-portal-2.7.2/server/default/temp/deploy/tmp1275818846018948934BMS-exp.war
/WEB-INF/lib/richfaces-components-ui-4.3.1.Final.jar!/META-INF/a4j.taglib.xml

这是怎么引起的,我该如何解决?

【问题讨论】:

  • 你能检查一下你的java版本吗?如果丰富的面孔4在那个版本上兼容,请
  • 是的,它是兼容的,我使用的是与 Rich Faces 4 兼容的 jdk1.6
  • 您能发布完整的错误日志吗?
  • 以后请发布完整的堆栈跟踪。这样一来,人们会立即看到 com.sun.facelets 类导致此错误,这反过来又是一个很好的提示,表明您仍在使用 Facelets 1.x。 JSF 2.0 Facelets 即封装在com.sun.faces.facelets。

标签: jsf richfaces facelets


【解决方案1】:

类路径中有两个不同的 RichFaces 版本:Richfaces 3.x 和 4.x,所以问题很可能是由于版本冲突。尝试删除 Richfaces 3.x 并检查。

【讨论】:

  • 不,只有 Rich Faces 4.x,我已经删除了 Rich Faces 3.x 的所有 jar,我只使用了 Rich Faces 4.x 版本,尽管出现了这个错误
  • 你在同一地点还有其他战争吗?
  • 您是否在 temp 内部署的旧战争文件中检查了这一点?
  • 在部署之前,我曾经从 JBoss Portal 服务器目录中删除以前版本的 temp,work 文件夹
  • 据我看到你的错误日志,原因肯定是版本冲突,现在你需要检查你在以前的项目中使用过 Richfaces 3.x 的其他地方。只需在您的问题中发布完整的日志,以便其他人可以看到并帮助您解决问题。
【解决方案2】:

解析 jar 时出错:... a4j.taglib.xml

这可以识别为 Facelets 解析错误。它无法解析 RichFaces4 的a4j.taglib.xml。 RichFaces4 是一个 JSF 2.0 兼容的组件库。 JSF 2.0 捆绑了 Facelets 2.0。此解析错误表明您的类路径中仍然存在 Facelets 1.x,它无法识别与 Facelets 2.0 兼容的 taglib 文件。

删除所有与 Facelets 1.x 相关的 JAR 文件 (jsf-facelets.jar) 和所有 Facelets 1.x 特定配置,尤其是 faces-config.xml 中的 FaceletViewHandler。这就是抑制 Facelets 2.0 的运行。一旦您摆脱了所有 Facelets 1.x 工件,Facelets 2.0 将运行并成功解析 taglib 文件。

另见:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-23
    • 2012-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-12
    相关资源
    最近更新 更多