从weblogic10.3像jboss 6.4项目迁移,遇到的一些问题:
因为使用weblogic可以自定义公共的war包库,在使用jboss中,也采取项目依赖公共库的方式;
1.jboss中使用公共库
2.ibatis的mappingLocations 依赖顺序;在jboss中,mapping文件通过refid有依赖的时候,被依赖的文件要
先加载,否则会报mapping文件加载不到的错误!,如下图所示,要顺序写出mapping文件的位置,不能一个**匹配所有;
3.使用JdkSerializationRedisSerializer作为redis反序列化对象的方式;
spring库是放在公共库里;
被反序列化的对象是在web.war/lib 下的jar里;
JdkSerializationRedisSerializer最终是调用jdk的ObjectInputStream反序列化的;
从上面反序列化中看到,会调用最近一次的user classloader加载反序列化类;而 被反序列化的对象是在web.war/lib 下的jar里;
所以这个classloader加载不到类;
解决方法:定义了自己的 MyJdkSerializationRedisSerializer类,这样 classloader用的就是一个了;
4.获取资源路径,在使用自定义VelocityToolboxView,获取配置文件路径时,
使用weblogic的话,getServletContext().getResource(getToolboxConfigLocation()).getPath() 就可以了;
但使用jboss时,需要使用 getServletContext().getRealPath(getToolboxConfigLocation());