jboss7.1.3中的javaee-api导致:引起:java.lang.NoClassDefFoundError:javax / faces / component / UIComponentBase

时间:2013-04-14 14:30:59

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

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

我使用jboss maven模板创建了一个javaee6 ear应用程序,并用以下内容替换了大多数与javaee6相关的依赖项:

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

因为我认为坚持标准会更好。但是当我向依赖项添加seam-faces时会抛出错误:

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,我会担心什么。

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

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