我正在将我们的JSF/Primefaces 3.5.x GF 3.1.1应用程序迁移到GF 4.0。这是一个带有战争的EAR和一个装满罐子的EJB-jar和lib。WELD-001408&ValidationInterceptor&Glassfish 4.0x&EAR&CODi无法部署?
战争已经WEB-INF/lib中具有:
'org.apache.myfaces.extensions.cdi.core:MyFaces的-extcdi核-API:1.0.5', “org.apache。 myfaces.extensions.cdi.core:myfaces-extcdi-core-impl:1.0.5',
'org.apache.myfaces.extensions.cdi.modules:myfaces-extcdi-jsf20-module-api:1.0.5' , 'org.apache.myfaces.extensions.cdi.modules:MyFaces的-extcdi-jsf20模块-IMPL:1.0.5',
除了PF东西和Omnifaces和其他一些依赖(CODI消息API & impl也包含在内 - 必须是一个传递dep )。注意:否CODi验证的东西是在战争中,也没有任何冬眠罐。
EAR Lib也有一堆罐子 - 它不重复CODi的东西,省略PF它包括一些弹簧和速度的东西,Apache的公共资源和一些其他的东西 - 再次没有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]
我已经看到了与此相关的其他2个SO帖子:
WELD-001408 Unsatisfied dependencies for type [Validator]
&
CDI/Weld Unsatisfied dependencies proglem
既没有暗示CODI验证器是背后的问题,也没有提到任何亮点 - 但我没有在我的部署单元(或EAR)中使用它。
有没有办法解决这个问题?
切换到DeltaSpike(和/或OS890 codi DS组合)不是立即选项;也不使用ee7。我需要尝试使用尽可能少的代码更改来实现。
任何想法?
我们使用http://os890.blogspot.com/2013/07/add-on-codi-scopes-for-deltaspike.html时没有问题。在这种情况下,您不需要添加任何与Bean-Validation相关的任何可能相冲突的内容。 –
那么,只是简单地扫描os890它看起来好像会起作用。但是,如果我必须破解代码 - 那么我不妨切换并使用一些JSF 2.2(现在只使用JSF 2。0)东西代替CODI的东西(真的只是ViewAccessScope)。真的试图避免触及太多的代码。 – fwelland
使用这个库,你只需要改变软件包名称。 –