公司需要将几个windows系统tomcat中间件下开发的j2ee系统部署到linux系统websphere7中间件下去运行。

这就需要做系统的适配工作。由于时间比较久了,具体问题就不详细写了。把这个适配工作主要可能涉及到的方面,遇到的问题表现做了一个小的总结,希望能够帮到有需要的同学。

主要修改的有以下几个方面:

1. web.xml的webapp声明标签版本改为2.4(websphere7不兼容webapp更高版本号,如大于2.4则websphere会内存溢出,直接挂掉)。

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不支持)

4. Java代码中的一些路径相关代码的替换。tomcat获取路径的代码与websphere中获取路径的代码得到的结果不同,需要注意修改。例如RealPath这种。

5. springMVC采用*.do作为servletDispacher的url-partern,去掉fileServlet配置。(was7不支持fileServlet配置)

6. 需要加载额外jar包的系统使用websphere扩展类操作选项(控制台里找到这个操作页)作为加载额外类的方法。加载额外类,需要在输入框内输入所有jar包的绝对路径。

7. 涉及到依赖tomcat运行环境的代码,要额外增加websphere环境中缺少的jar包。如websocket功能。

8. linux系统环境的路径以"/"起始,后台查看log时需仔细,如/home/was7/**是对的,home/was7/**就错了,因为缺少了开始的"/"。

9. linux系统下websphere中对jar包中的类冲突反应异常的敏感(可能windows上没有问题,但是linux上就出错了),如果遇到疑难杂症,可在排除了其他可能后考虑是否有系统依赖的jar包内的类名冲突了。

windows系统tomcat上开发的j2ee程序,如何适配linux系统上奔跑的websphere7的更多相关文章

  1. 在Visual Studio上开发Node.js程序(2)——远程调试及发布到Azure

    [题外话] 上次介绍了VS上开发Node.js的插件Node.js Tools for Visual Studio(NTVS),其提供了非常方便的开发和调试功能,当然很多情况下由于平台限制等原因需要在 ...

  2. 在Visual Studio上开发Node.js程序

    [题外话] 最近准备用Node.js做些东西,于是找找看能否有Visual Studio上的插件以方便开发.结果还真找到了一个,来自微软的Node.js Tools for Visual Studio ...

  3. 在Visual Studio 2013 上开发Node.js程序

    [题外话] 最近准备用Node.js做些东西,于是找找看能否有Visual Studio上的插件以方便开发.结果还真找到了一个,来自微软的Node.js Tools for Visual Studio ...

  4. 零基础程序员入门Linux系统 !如何快速恢复系统?

    新手在学习Linux系统的时候,难免会遇到命令输错,或系统出错的难题.那么如何快速解决呢?本文就先给你一个后悔药,让你快速备份并恢复Linux系统.本文将以Ubuntu为例,在这之前,你需要一台服务器 ...

  5. 在远程系统上开发 SharePoint 应用程序

    适用范围: apps for SharePoint | Office 365 | SharePoint Foundation 2013 | SharePoint Server 2013 使用远程安装的 ...

  6. 如何将.Net Core应用程序部署在Linux操作系统上运行

    .Net Core简介 跨平台: 可以在 Windows.macOS 和 Linux 操作系统上运行. 跨体系结构保持一致: 在多个体系结构(包括 x64.x86 和 ARM)上以相同的行为运行代码. ...

  7. Linux C 程序 文件操作(Linux系统编程)(14)

    文件操作(Linux系统编程) 创建一个目录时,系统会自动创建两个目录.和.. C语言实现权限控制函数 #include<stdio.h> #include<stdlib.h> ...

  8. Fedora 11中用MinGW编译Windows的Qt4程序(在Linux系统下编译Windows的程序)

    Ubuntu下可以直接安装: sudo apt-get install mingw32 mingw32-binutils mingw32-runtime 安装后编译程序可以: i586-mingw32 ...

  9. Linux下开发python django程序(设置admin后台管理上传文件和前台上传文件保存数据库)

    1.项目创建相关工作参考前面 2.在models.py文件中定义数据库结构 import django.db import modelsclass RegisterUser(models.Model) ...

随机推荐

  1. [2018-01-12] laravel--ORM

    建立模型 <?php namespace App; use Illuminate\Database\Eloquent\Model; class Student extends Model { / ...

  2. [专题总结]AC自动机

    其实前面的模板也不是1A,我在题库里提前做过,也不必在意罚时,刚开始我在做别的专题 裸模板我就不说了,各个博客讲解的很明白 void insert(string s){ ,len=s.size(); ...

  3. Python的看门狗实现自动化实时对服务器、Windows或Linux文件夹的实时监控

    众所周知,在运维过程中,实时获取目标文件夹至关重要,Python的watchdog是用程序来监视文件系统事件Python库,所以用该库可以实现对文件夹的实时监控,filenotify.py代码如下: ...

  4. html5基本页面

    html5基本页面 <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...

  5. mpvue+小程序云开发,纯前端实现婚礼邀请函

    请勿使用本文章及源码作为商业用途! 前言 当初做这个小程序是为了婚礼前的需要,结婚之后,希望这个小程序能够留存下来,特地花了一些空闲时间将小程序转化成为“相册类小程序” 体验码 准备工作 mpvue框 ...

  6. Machine Learning in Action ---- kNN

    ------------恢复内容开始------------ # -*- coding: utf-8 -*- """ Created on Thu Nov 14 19:2 ...

  7. 如何构建自己的 react hooks

    我们组的前端妹子在组内分享时谈到了 react 的钩子,趁此机会我也对我所理解的内容进行下总结,方便更多的同学了解.在 React 的 v16.8.0 版本里添加了 hooks 的这种新的 API,我 ...

  8. 淘宝小练习#css

    * { margin: 0; padding: 0; } a { text-decoration: none; } .box { background: #f4f4f4; } /* 头部样式STAR ...

  9. tensorflow中的学习率调整策略

    通常为了模型能更好的收敛,随着训练的进行,希望能够减小学习率,以使得模型能够更好地收敛,找到loss最低的那个点. tensorflow中提供了多种学习率的调整方式.在https://www.tens ...

  10. 比较一下inner join(可直接简写为join)和where直接关联

    SELECT * FROM A ,B WHERE A.ID = B.ID 是比较常用的2个表关联.之前一直用这个,后来换了家公司发现这家公司的报表大多数都是用inner join,稍微研究了一下.查阅 ...