Tomcat 迁移到 Jboss5.1日志
??? 从Tomcat升级到JBoss5.1真是一个痛苦的过程,可能遇到很多问题。以下是我碰到的问题,及解决方法。
一.Hibernate不兼容问题。
?
??? JBoss5.1中内置了hibernate,以前4.x的时候还是在server/default/lib里,但在JBoss5.1的时候已经升级到了common/lib下面。4.x时我直接删掉hibernate等的jar就可以了,但5.1不行,否则会抛很多错误。只能一步步解决。
???? 我首先碰到的问题是hibernate配置文件名字错误,可笑是吗?在JBoss5.1下会首先搜索*-hibernate.xml的文件。如果有就当成jboss hibernate配置的文件,进行加载。而我的项目里的spring下的hibernate配置文件正使用了该结尾,可想而知了。抛出 is in error due to the following reason(s): java.lang.ClassCastException错误。找了好久才找到原因。改一下名字就可以了,如*-forhibernate.xml
?
???? 之后是ClassLoad问题。解决上一个问题后,碰到如下异常。
?
<!DOCTYPE jboss-web PUBLIC "-//JBoss//DTD Web Application 5.0//EN""http://www.jboss.org/j2ee/dtd/jboss-web_5_0.dtd"><jboss-web><class-loading java2ClassLoadingCompliance='true'> <loader-repository> com.example:archive=unique-archive-name <loader-repository-config> java2ParentDelegaton=true </loader-repository-config> </loader-repository> </class-loading></jboss-web>
?就可以了,这样就不会使用容器的jar了。
二、web下加载配置文件错误。
?
???? 这个是个小问题就是class.getClassLoader().getResource("/").getPath()无发在jboss5.1下取到目录,而tomcat下跑的很正常。也应该算是一个Jboss的一个bug。改正方式使用context.getRealPath("/")取出。
?
三、ActiveMQ的包放进去会抛异常,应该是我没有使用jboss配置JMS的原因,暂时我先给移除了。等以后会配了在补篇文章。
?
?
终结:
???? 虽然解决了,但总觉得容器迁移很痛苦。明明跑的很好的程序,但还了容器,就跑不了了。很郁闷,解决起来也不好找问题。不能希望容器改变,还是希望自己变的更强些吧。
?
1 楼 peterwillcn 2009-11-28 好文章。。。。。我的也是名字的问题。。。哎。。找了好久 2 楼 elf8848 2010-01-13 我也 tomcat 换jboss , 也痛苦中。。。 3 楼 jiahch 2010-10-23 痛苦中。。。 JBoss5 不能初始化 spring 注解 的 Bean我的异常网推荐解决方案:org.springframework.beans.factory.BeanCreationException:,http://www.myexception.cn/j2ee/10759.html