我目前正在尝试开发一款耳朵应用,并希望将其部署在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,我会担心什么。
答案 0 :(得分:2)
是的,坚持原型中的内容。 “标准”罐子不完整而且iirc是用剥离字节代码创建的,与Geromino和JBoss罐子的创建方式不同(有人通过规范和手工编码所有api)。只要您将罐子保持为provided
,使用Glassfish就不会有任何问题。
答案 1 :(得分:0)
上面的答案是有效的,但我所做的是不同的,我删除了接缝面依赖性,它解决了我的问题。我在缝合面上使用的是s:objectConverter我在组合框中使用,没有它我创建了自己的实体转换器。