IllegalStateException: No phase id bound to current thread
我把Seam2.0.2中的booking example通过Maven向glassfish-v2部署了下,结果老是报下列异常:
java.lang.IllegalStateException: No phase id bound to current thread (make sure you do not have two SeamPhaseListener instances installed)
还有这个异常:java.lang.IllegalStateException: No active application scope
当部署结束后,日志文件中加一句:|WARNING|sun-appserver9.1|org.jboss.seam.jsf.SeamPhaseListener|_ThreadID=208;_ThreadName=Thread-123;_RequestID=9cd3decc-ea60-4530-8dbb-cc29501bfe21;|There should only be one Seam phase listener per application|#]
我在网上搜索了很久,有一个帖子,说是由于classpath有多个jboss-seam.jar引起的!但是,我仔细核查了多次,确认这种情况不大可能发生,我只有EAR module中依赖jboss-seam.jar,而EJB和WAR module依赖jboss-seam.jar,但设定了<scope>provided</scope>,所以我认为只引入了一个jboss-seam.jar!
是不是配置文件有误呢?
web.xml,components.xml,pages.xml基本都是copy了booking example中的.我只是在faces-config.xml中另加了句:
<lifecycle> <phase-listener>org.jboss.seam.jsf.SeamPhaseListener</phase-listener> </lifecycle>
当没有这句时,同样也有以上所说的两个异常发生.
希望高手指点迷津,这里先行谢过!!!