从weblogic10.3像jboss 6.4项目迁移,遇到的一些问题:

因为使用weblogic可以自定义公共的war包库,在使用jboss中,也采取项目依赖公共库的方式;

1.jboss中使用公共库

jboss eap 6.4 部署 从weblogic迁移-LMLPHP

jboss eap 6.4 部署 从weblogic迁移-LMLPHP

2.ibatis的mappingLocations 依赖顺序;在jboss中,mapping文件通过refid有依赖的时候,被依赖的文件要

先加载,否则会报mapping文件加载不到的错误!,如下图所示,要顺序写出mapping文件的位置,不能一个**匹配所有;

jboss eap 6.4 部署 从weblogic迁移-LMLPHP

3.使用JdkSerializationRedisSerializer作为redis反序列化对象的方式;

spring库是放在公共库里;

被反序列化的对象是在web.war/lib 下的jar里;

JdkSerializationRedisSerializer最终是调用jdk的ObjectInputStream反序列化的;
jboss eap 6.4 部署 从weblogic迁移-LMLPHP 
jboss eap 6.4 部署 从weblogic迁移-LMLPHP
从上面反序列化中看到,会调用最近一次的user classloader加载反序列化类;而 被反序列化的对象是在web.war/lib 下的jar里;
所以这个classloader加载不到类;
解决方法:定义了自己的 MyJdkSerializationRedisSerializer类,这样 classloader用的就是一个了;
jboss eap 6.4 部署 从weblogic迁移-LMLPHP 
 
 
4.获取资源路径,在使用自定义VelocityToolboxView,获取配置文件路径时,
使用weblogic的话,getServletContext().getResource(getToolboxConfigLocation()).getPath() 就可以了;
但使用jboss时,需要使用 getServletContext().getRealPath(getToolboxConfigLocation());
jboss eap 6.4 部署 从weblogic迁移-LMLPHP 
05-11 22:50