公司须要将几个windows系统tomcat中间件下开发的j2ee系统部署到linux系统websphere7中间件下去运行。java
这就须要作系统的适配工做。因为时间比较久了,具体问题就不详细写了。把这个适配工做主要可能涉及到的方面,遇到的问题表现作了一个小的总结,但愿可以帮到有须要的同窗。linux
主要修改的有如下几个方面:web
1. web.xml的webapp声明标签版本改成2.4(websphere7不兼容webapp更高版本号,如大于2.4则websphere会内存溢出,直接挂掉)。spring
2. 将数据库链接池由proxool改成c3p0(新增c3p0相关jar包:c3p0-0.9.5.2.jar, c3p0-oracle-thin-extras-0.9.5.2.jar,mchange-commons-java-0.2.11.jar, 补充关联jar包:slf4-api-1.7.12.jar, slf4j-log4j12-1.7.12.jar)。(遇到数据库不能正确链接的问题,若是有两个或更多采用proxool链接池的j2ee系统部署在一个websphere节点下,那么将只有一个j2ee系统可以正常链接数据库,并且不肯定将是哪个能成功链接,bug排查难度大,表现诡异。)数据库
3. Struts的配置文件,不使用通配符*,改成使用全路径。(was7不支持)windows
4. Java代码中的一些路径相关代码的替换。tomcat获取路径的代码与websphere中获取路径的代码获得的结果不一样,须要注意修改。例如RealPath这种。api
5. springMVC采用*.do做为servletDispacher的url-partern,去掉fileServlet配置。(was7不支持fileServlet配置)tomcat
6. 须要加载额外jar包的系统使用websphere扩展类操做选项(控制台里找到这个操做页)做为加载额外类的方法。加载额外类,须要在输入框内输入全部jar包的绝对路径。websocket
7. 涉及到依赖tomcat运行环境的代码,要额外增长websphere环境中缺乏的jar包。如websocket功能。oracle
8. linux系统环境的路径以"/"起始,后台查看log时需仔细,如/home/was7/**是对的,home/was7/**就错了,由于缺乏了开始的"/"。
9. linux系统下websphere中对jar包中的类冲突反应异常的敏感(可能windows上没有问题,可是linux上就出错了),若是遇到疑难杂症,可在排除了其余可能后考虑是否有系统依赖的jar包内的类名冲突了。