這個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
沒有留言:
張貼留言