日期:2014-05-17  浏览次数:20851 次

SSH项目迁移至JBoss,改成Struts+EJB项目总结
这学期我们有个Web企业应用课程,也就是EJB,需要做一个课程作业。利用三个Bean(会话Bean、实体Bean、消息驱动Bean)实现。
 
以前做了好几个SSH项目,心想这下轻松了,可以把SSH中的Hibernate改成EJB,其余不需要做什么调整,课别高兴得太早,苦戏还在后头。
 
最开始把项目部署到JBoss下,一大堆错,在网上搜了下,发现一哥们也遇到了这个问题,很类似,可惜没有解决办法。应该说很幸运,就是没有解决办法,才有了下面的一些探讨。原帖地址:http://bbs.csdn.net/topics/370099631
 
折腾了一番,Spring是肯定不能用,Hibernate也不能,只有Struts和EJB结合了。再想想自己的编程方式是不是不对啊,只有一个项目,代码很乱,不易管理,所以采用服务器和客户端的方式。服务器负责对数据库的操作,接收消息并进行处理,客户端用于数据的展示。思路明了了,项目结构也清晰了,开始迁移。
 
 
启动JBoss出现异常后,解决列表。
EJB项目出现“org.hibernate.LazyInitializationException: could not initialize proxy - no Session”异常解决
http://blog.csdn.net/wentasy/article/details/8473250
 
启动JBoss出现“java.lang.noclassdeffounderror org/apache/commons/lang3/stringutils jar”解决
http://blog.csdn.net/wentasy/article/details/8473274
 
启动JBoss出现“java.lang.NoClassDefFoundError: org/apache/commons/lang/StringUtils”解决
http://blog.csdn.net/wentasy/article/details/8473287
 
启动JBoss出现“java.lang.RuntimeExceptionjava.lang.reflect.InvocationTargetException”解决
http://blog.csdn.net/wentasy/article/details/8474329
 
启动JBoss出现“Unable to load configuration struts-default.xml”异常解决
http://blog.csdn.net/wentasy/article/details/8474339
 
mapped-name/lookup/jndi-name and any ResourceProvider could’t process resource-env-ref named
http://blog.csdn.net/wentasy/article/details/8475397
 
java.lang.NoClassDefFoundError: org/hornetq/api/core/client/ClientSession解决
http://blog.csdn.net/wentasy/article/details/8475407
 
java.lang.LinkageError: loader constraint violation解决
http://blog.csdn.net/wentasy/article/details/8475418
 
启动JBoss出现“java.lang.NoClassDefFoundError: javax/transaction/TransactionManager”解决
http://blog.csdn.net/wentasy/article/details/847543
 
 
 
折腾了很久,最后是迁移成功了,遇到和解决的问题见上诉列表。
 
经过这次项目的改造,特此总结以下几点:
1.       SSH项目能在Tomcat下正常运行,不代表可以在JBoss下正常运行;
2.       遇到问题不要着急,先分析,试着自己解决,实在不行再借助网络;
3.       做一件事之前要想好思路,不要盲目地去做;
4.       做Web开发一抛异常就是一大堆,此时不要气馁,要有耐心;
5.       学习EJB学习的是思想,这一点切记;
6.       采用服务器和客户端的方式可以要你的项目结构发现意想不到的变化;
7.       如果出现java.lang.noclassdeffounderror org/apache/commons/lang3/stringutils jar异常后加入了commons-lang3-3.1.jar解决了问题,但又报java.lang.NoClassDefFoundError: org/apache/commons/lang/StringUtils异常,此时又把commons-lang-2.5.jar加进去即可,两个jar包并存是可以的,而且就我遇到的情况来看,只有两个都加入了才不会报错;
8.