我是Java新手,遇到了解框架拋出異常的問題。解決Java中鏈接[class]錯誤時違反的加載器約束問題
現在,我正試圖將一個正則表達式驗證器實現爲一個包含Java 5 EE和myFaces 1.2以及多巴哥在apache tomcat 5.5中運行的應用程序。
我遵循了幾個教程(包括來自SUN的Java 5 EE tut)並且相當遙遠。但是,調用JSP我的時候,我得到了以下錯誤消息:
java.lang.LinkageError: loader constraints violated when linking javax/faces/validator/Validator class
誰能向我解釋什麼,我需要做什麼來解決這個問題?
到目前爲止,似乎MyFaces 1.1.7與TomCat 5.5存在版本衝突。兩者都包含javax。*包(其中一個即javax.faces.validator)。驗證器類在包中具有不同的版本。相應的MyFaces庫稱爲myfaces-api-1.1.7.jar,TomCat庫稱爲javaee.jar。
myfaces lib中包含的javax包是javaee lib中包的子集。然而......我不能跳過這兩者,因爲那時項目將無法開始。
任何tipps?
我相信我發現了異常的來源,但是,我不知道如何解決這個問題。 在Eclipse的庫下,我可以看到帶有包含javax.faces.validator包的大量javax包的庫javaee.jar的Apache Tomcat v5.5。另外,我可以看到帶有庫myfaces-api-1.1.7.jar的JSF MyFaces 1.1,其中包含一些包含javax.faces.validator包的javax包。 我該如何解決這個問題,因爲我相信我需要這兩個庫,如果不打破我的項目,就不能刪除一個庫? – Mephisztoe 2009-12-03 15:44:28
如果Tomcat將javax.faces作爲其庫的一部分,那麼它應該包含完整的實現,並且您的應用程序不需要myfaces-api-1.1.7.jar – skaffman 2009-12-03 15:50:29
刪除myfaces-api-1.1.7當webapp啓動時,.jar立即導致UnsupportedOperationException異常: java.lang.UnsupportedOperationException/javax.faces.context.FacesContext.getELContext(FacesContext.java:137) – Mephisztoe 2009-12-03 16:30:12