JBoss的classLoader問題
JBoss的classLoader問題出現(xiàn)在,我將richfaces的tree例子放到seam的ear項(xiàng)目中的時(shí)候,bean中竟然找不到UITree對(duì)象,報(bào)classNotFound從而我發(fā)現(xiàn),默認(rèn)seam將ear的jar文件和war的jar文件分開放了。
比如:同樣是richfaces的jar,有三個(gè),但是在ear/lib下面只有一個(gè)api,在WEB-INF/lib下面只有ui和impl。
猜到可能是這里出的問題,于是導(dǎo)出查找資料。seam官方論壇上有人說,將所有的lib全部放在ear下面,然后在war里面添加META-INF/MANIFEST.MF文件,在這個(gè)文件的Class-Path屬性里面寫上要加載的包
但是怎么試都試不出來,不知道這里的classpath該怎么寫才能讓war去找ear/lib下面的包。于是干脆我將包復(fù)制兩份,ear和war下面都放一份,然后報(bào)錯(cuò),具體的不記得了,貌似是類重復(fù)加載,然后結(jié)果還是找不到。
找了一天半,終于讓我找到一個(gè)文章,里面說,JBoss4.2將ear和war的classLoader分開了,需要修改JBoss下面 server\default\deploy\JBoss-web.deploy\META-INF\JBoss-service.xml里面的配置,讓 JBoss的classLoader合并為一個(gè),但是文章還是沒有說清楚到底該改哪個(gè)值。
還好,JBoss的注釋做的好,我英文還勉強(qiáng)能在詞典的幫助下看懂注釋說的什么最終將<attribute name="UseJBossWebLoader">false</attribute>中的false改成true就ok了。
開始我還寫成了ture,讓我多費(fèi)了一番周折,哎,eclipse用慣了,所有東西都用彈出提示了,就會(huì)讓人不小心犯這種低級(jí)錯(cuò)誤。以上是JBoss的classLoader問題和解決。
【編輯推薦】