WELD-001408& ValidationInterceptor& Glassfish 4.0x& EAR& CODi无法部署?

时间:2013-10-08 19:26:49

标签: jsf-2 deployment glassfish-4 codi

我正在将我们的JSF / Primefaces 3.5.x GF 3.1.1应用程序迁移到GF 4.0。它是一个带有战争的EAR和一个充满罐子的EJB-jar和lib。

WAR具有WEB-INF / lib:

'org.apache.myfaces.extensions.cdi.core:MyFaces的-extcdi核-API:1.0.5',  'org.apache.myfaces.extensions.cdi.core:MyFaces的-extcdi核-IMPL:1.0.5',
 'org.apache.myfaces.extensions.cdi.modules:MyFaces的-extcdi-jsf20模块-API:1.0.5',  'org.apache.myfaces.extensions.cdi.modules:MyFaces的-extcdi-jsf20模块-IMPL:1.0.5',

除了PF的东西和Omnifaces以及其他一些依赖项(codi消息api& impl也包括在内 - 必须是一个传递dep)。注意: 没有CODi验证的东西在WAR中,也没有任何hibernate jar

EAR Lib也有一堆罐子 - 它不会复制CODi的东西并省略PF它确实包括一些弹簧和速度的东西,apache公共和其他一些东西 - AGAIN 没有CODi验证器东西或休眠的东西。

部署后我得到:

org.jboss.weld.exceptions.DeploymentException: WELD-001408 Unsatisfied dependencies for type [Validator] with qualifiers [@Default] at injection point [[UnbackedAnnotatedField] @Inject private org.hibernate.validator.internal.cdi.interceptor.ValidationInterceptor.validator]

我已经看到了与此相关的其他两篇SO帖子:

WELD-001408 Unsatisfied dependencies for type [Validator]

&安培;

CDI / Weld Unsatisfied dependencies proglem

两者都没有任何结果,因为两者都暗示CODI验证器是问题背后的原因 - 但我在部署单元(或EAR)中根本就没有。

有没有解决这个问题?

切换到DeltaSpike(和/或OS890 codi DS组合)不是一个直接的选择;也没有使用ee7。我需要尝试使用尽可能少的代码更改来使用它。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

我找到了以下解决方案:

在“myfaces-extcdi-jsf20-module-impl-1.0.5.jar”中完全删除包“org.apache.myfaces.extensions.cdi.jsf.impl.bv”。

没有什么是完美的,但到目前为止对我有用......

答案 1 :(得分:0)

他们只是推文说最新的快照可以和EE7一起使用。我想没有人报告这个问题(至少我直到今天才看到JIRA票)。