在经历了艰难的版本选择后,我最终还是选了seam 2.2.1.Final 和其它与之配合的版本
然后用maven建立了一个空的portletbridge项目
mvn archetype:generate -DarchetypeCatalog=http://bit.ly/jbossportletbridge
一开始我建立的是seam的项目,但是建立的是一个ear项目,我想要的是war的,所以我又建立了一个war项目并参照seam的ear项目把seam加入进来,从这开始我就开始了艰难的过程
1.jar包冲突:
从我把我改好的项目部署到jboss开始就是一路的包冲突。。先是sax的一个xml解析器有冲突,再来是hibernate,后来还有,最后我才弄明白,原来jboss自已有很多jar包的,我再加就会引起冲突。就我现在所知,jboss已有hibernate,jsf等的jar包的,所以要在我的pom文件中使用exclusions 和 provided 去掉这些包,我最后的pom是这样的
还有一个jar(javassist)包是ear项目中有的,但是和jpa的冲突 见:http://topic.youkuaiyun.com/u/20100112/17/58beb62e-25c0-41a6-ad3b-7c90bf7e8c66.html
再还就是web.xml的配置问题了。。。这东东。要把这几样东东联接起来就是它了,我的web.xml:
还有几个问题没弄明白:
1.seam的项目中不在有a4j的listener了,而加了一个seam的listener,是不是不再需要了(已查证,在seam的listener中已函此过滤器,只要a4j在你的classpath中)。
2.
这个在ear的seam中也是没有的,是我后加的,不知道是不是可以不加。
3.portletbridge的异常处理设置:
这个配置的本意是要让portla也就是gatein来处理和显示portlet的异常,但是我这加上这个后出现问题 : 在项目出现异常时出现以下错误
NullPointerException in org.jboss.seam.exception.Exceptions.parse
我在seam的issue中找到了这个,但是就在seam2.1.2CR2中就解决了。但是我用的可是2.2.1.Final啊,无语了。
我只好把这个配置去掉了。