公司需要将几个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. CSPS模拟 90

  2. 如何在Vue-cli项目中使用JTopo

    1.前言 jTopo(Javascript Topology library)是一款完全基于HTML5 Canvas的关系.拓扑图形化界面开发工具包.其体积小,性能优异,由一群开发爱好者来维护.唯一感 ...

  3. P3043 [USACO12JAN]牛联盟Bovine Alliance——并查集

    题目描述 给出n个点m条边的图,现把点和边分组,每条边只能和相邻两点之一分在一组,点可以单独一组,问分组方案数. (友情提示:每个点只能分到一条边,中文翻译有问题,英文原版有这样一句:The cows ...

  4. 【解决】Got permission denied while trying to connect to the Docker daemon socket at......dial unix /var/run/docker.sock: permission denied

    >>> 问题:搭建Portainer时,选择本地连接报错? >>>分析: 根据报错信息可知是权限问题. 可能原因一:使用了非root用户启用或连接docker &g ...

  5. raw文件转mha文件

    raw格式 在体数据(volume)中,经常会遇到raw文件,raw文件就是其实就是所有体素组成的文件,raw文件必须还有一些描信息才能用(因为得知道数据的size,type,spacing等),就像 ...

  6. Python Socket学习之旅(一)

    Socket概述 socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过"套接字"向 网络发出请求或者应答网络请求. s ...

  7. 面试开挂:近百道Java面试题整理

    1.什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”? Java虚拟机是一个可以执行Java字节码的虚拟机进程.Java源文件被编译成能被Java虚拟机执行的字节码文件. Java被 ...

  8. [Verilog] 从系统时钟转换出想要的时钟

    如何50MHZ时钟转换出一个250KHZ的时钟出来? 假如系统时钟是50MHZ,然后想得到250KHZ的新时钟,那么50MHZ / 250KHZ = 200倍,然后令k=200,程序如下: ; :] ...

  9. mysql 创建用户及授权(1)

    一. 创建用户 命令: CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 说明: username:你将创建的用户名 host:指定该用户 ...

  10. nyoj 8-一种排序 (贪心)

    8-一种排序 内存限制:64MB 时间限制:3000ms Special Judge: No accepted:9 submit:18 题目描述: 现在有很多长方形,每一个长方形都有一个编号,这个编号 ...