【问题标题】:javaee-api in jboss7.1.3 causing: Caused by: java.lang.NoClassDefFoundError: javax/faces/component/UIComponentBasejboss7.1.3 中的 javaee-api 导致: 引起:java.lang.NoClassDefFoundError: javax/faces/component/UIComponentBase
【发布时间】:2013-04-14 14:30:59
【问题描述】:

我目前正在尝试开发一个ear应用程序,并希望将其部署在jboss7.1.3服务器中。

我已经使用 jboss maven 模板创建了一个 javaee6 ear 应用程序,并将大部分 javaee6 相关依赖项替换为:

<dependency>
    <groupId>javax</groupId>
    <artifactId>javaee-api</artifactId>
    <version>6.0</version>
</dependency>

因为我认为坚持标准会更好。但是当我将接缝面添加到依赖项时,会引发错误:

Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: JBAS018045: Failed to load annotated class: org.jboss.seam.faces.component.UIViewAction

进一步挖掘发现了一个缺失的类:

Caused by: java.lang.NoClassDefFoundError: javax/faces/component/UIComponentBase

这是为什么呢?我应该坚持使用 Maven 原型提供的依赖项吗?我担心的是如果我迁移到 Glassfish 会怎样。

【问题讨论】:

    标签: glassfish jboss7.x java-ee-6 cdi


    【解决方案1】:

    是的,坚持原型中的内容。 “标准” jar 不完整,iirc 是通过剥离字节码创建的,这与 Geromino 和 JBoss jar 的创建方式不同(有人通过规范并手动编码所有 api)。只要您将罐子保留为provided,使用 Glassfish 应该不会有任何问题。

    【讨论】:

      【解决方案2】:

      上面的答案是有效的,但我所做的不同,我删除了 seam-faces 依赖,它解决了我的问题。我在 seam-faces 中使用的是我在组合框中使用的 s:objectConverter,没有它我创建了自己的实体转换器。

      【讨论】:

        猜你喜欢
        • 2011-09-04
        • 2012-05-28
        • 2014-10-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-08-19
        • 2012-04-10
        相关资源
        最近更新 更多