2013年7月2日 星期二

slf4j專案Deploy進Oracle AS 的錯誤

這個war檔在Tomcat 6.x 是可以正常運作的, 但是在Oracle AP 佈署時就失敗了, 錯誤訊息如下

oracle.classloader.util.AnnotatedNoClassDefFoundError: 遺漏類別: org.slf4j.impl.StaticLoggerBinder 相依類別: org.slf4j.LoggerFactory … 無法從系統中的任何程式碼來源或載入器取得遺漏的類別 …

找了Google,說是slf4j.jar 檔不完整之類的…(英文沒有很好); 總之昇級到 1.7.5 就好了;

但是我是加了 slf4j-api-1.7.5.jar & slf4j-ext-1.7.5.jar & slf4j-log4j12-1.7.5.jar 這三個jar檔.

---------------------------------------

後來又出現 oracle.classloader.util.AnnotatedNoClassDefFoundError EL.Exception 的錯誤, 查到是 JSTL 的問題, 好像OC4J 不支援 Jstl 1.2 所以再把 Jstl 降回 1.1 (把tomcat 6 內 lib 的jstl.jar 及 standard.jar複製回WEB-INF\lib)即可.

PS: 記得把 javaee-api-5.jar 移除(OC4J不能跑)

---------------------------------------

相信嗎? getHibernateTemplate().find("from CustProfileVoImpl w where w.membersAutoId=?",values) 會報錯?!

ClassNotFoundException: org.hibernate.hql.ast.HqlToken \u003d

\u003d是 '=' 找破頭也不知道是什麼原因

後來找到是OC4J  一啟動就跟我說 antlr.jar 它已經有新版的?

我把toplink/jlib/antlr.jar移除重啟就好了, 因為hibernate 使用的antlr 跟OC4J的版本不一樣.

後來找到網路上有一篇 http://www.reidmiller.name/oc4j-conflict-with-hibernate3-hql

沒有留言: