2008年8月14日 星期四

[Seam]重複載入SeamPhaseListener

今天要用JBoss Application Server執行 HRMS 的 Seam 專案時
出現了如下的錯誤訊息
Caused by java.lang.IllegalStateException with message: "No phase id bound to current thread (make sure you do not have two SeamPhaseListener instances installed)"

回去看啟動 log 也發現它有顯示這個錯誤
13:23:30,522 WARN [SeamPhaseListener] There should only be one Seam phase listener per application

上網 google 後找到的解法.....

[8/25更新]
這錯誤困擾我兩個多禮拜,直到今天才解決(應該吧....)
由於我之前使用 war 來建立專案,但卻無法有效執行 TestNG,直到發現問題出在應該以 ear 來建立 EJB3 專案才解決(嗯...這也反映基本功不夠會出現很多笑話)
OK...TestNG 可以過了那就來試試看實際網頁長怎樣
RUN...居然出現...No phase id bound to current thread (make sure you do not have two SeamPhaseListener instances installed)
這是啥呀?
去 google 查,有人說是因為同一時間內載入了兩個以上的 SeamPhaseListener
好....那就來找看看是哪個 jar 檔或設定檔多做了這動作(因為我是直接用精靈產生專案,應該很好找吧!!)
...
...
(光陰似箭....兩個禮拜過去)
......媽呀....居然怎麼都找不到....
死了....不會就這樣專案胎死腹中吧....(這其間還想到要找顧問來解救算了)

不死心地上 google 再拜一次(其實每天都在拜)
這次用 "jbds seamphaselistener" 當 keyword,幸運的讓我在 [url=http://seamframework.org/Community/ProblemWithJboss423]jboss community[/url] 找到有人也發生這錯誤,也有人沒有發生這錯誤
依據內容,我就想試試看是不是 JBoss AS 的問題
果不其然,再將 JBoss AS 4.2.3 換成 JBoss As 4.2.2 以後就沒有這問題了

雖然問題解決了,但心中還是有不踏實的感覺