我正在將我們的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
使用這個庫,你只需要改變軟件包名稱。 –