2013-10-08 53 views
2

我正在將我們的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。我需要嘗試使用盡可能少的代碼更改來實現。

任何想法?

+0

我們使用http://os890.blogspot.com/2013/07/add-on-codi-scopes-for-deltaspike.html時沒有問題。在這種情況下,您不需要添加任何與Bean-Validation相關的任何可能相沖突的內容。 –

+0

那麼,只是簡單地掃描os890它看起來好像會起作用。但是,如果我必須破解代碼 - 那麼我不妨切換並使用一些JSF 2.2(現在只使用JSF 2。0)東西代替CODI的東西(真的只是ViewAccessScope)。真的試圖避免觸及太多的代碼。 – fwelland

+0

使用這個庫,你只需要改變軟件包名稱。 –

回答

0

我發現以下解決方案:

在 「MyFaces的-extcdi-jsf20模塊-IMPL-1.0.5.jar」 刪除軟件包「org.apache.myfaces.extensions.cdi.jsf.impl .bv「完全。

沒有完美的,但對我的作品至今...

+0

回到這個....你有EAR/lib或WAR/WEB_INF/lib中的cdiext/codi jar嗎? – fwelland

+0

我有它在戰爭/ WEB-INF/lib – msc1979

+0

因此,在我的情況下,如果我有它在WEB-INF/lib我會得到一個CNF風格的問題有關的一些CODE相關的安全驗證程序或攔截器。雖然清楚地在WEB-INF/lib中的codi jar可能是它需要的東西不是??無論如何,將它們轉移到包含EAR的lib目錄,我終於得到了部署;然而,應用程序黯然崩潰...更多的工作要做... – fwelland

0

他們只是推說,最新的快照可以EE7使用。我想沒人會回報這個問題(至少我今天才看到JIRA票)。

+0

嗯......這仍然在我的視線之內;儘管我先邁出了一步步到達gf 3.1.2.2的步伐。你可以把一個鏈接到JIRA或鏈接到推文或快照或什麼 - 我的非常休閒谷歌搜索沒有找到任何東西。和/或如果我理解正確,你的意思是CODI做了一個快速修復,允許它在EE7/GF4上運行? – fwelland

+0

https://twitter.com/MyFacesTeam/status/422672426715975680和https://issues.apache.org/jira/browse/EXTCDI-313我不知道什麼時候他們會發布它,但我想借此機會和測試如果仍然存在問題,可以很快向他們提供反饋。 –

+0

謝謝!我不會嘰嘰喳喳,也不會看到如何搜索推文 - 我隱約記得關於推特的一些消息,擺脫匿名瀏覽和搜索推文。無論如何,我搞砸了他們的SVN網站,並開始看到一些關於EE7支持的評論。我一定會嘗試一下! – fwelland