公司需要将几个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. 学习笔记24_MVC前后台数据交互

    *最普通的交互方式,在Contoller中的Action方法内 public ActionResult Index() { ViewData["Key"] =Value; Retu ...

  2. Python的闭包以及迭代器

    一,闭包 什么是闭包呢?闭包就是内层函数,对外层函数(非外层)的变量的引用,叫做闭包 def mz(): name = 'YJ' def xue(): print(name) #闭包 xue() mz ...

  3. [考试反思]0929csp-s模拟测试55:消逝

    菜得过分. 面对T1的大板子不知所措,然后T2的贪心不小心把排序语句删了... T1这种大模板啊...其实我是觉得我能打出来的,然后先用一个小时码了一个2k. 然后做T2想贪心就出来了.十分钟码完T3 ...

  4. MapReduce任务提交源码分析

    为了测试MapReduce提交的详细流程.需要在提交这一步打上断点: F7进入方法: 进入submit方法: 注意这个connect方法,它在连接谁呢?我们知道,Driver是作为客户端存在的,那么客 ...

  5. LINQ学习——JOIN

    一.JOIN的作用 1.使用联接来结合两个或更多的集合的数据. 2.联接操作接受两个集合然后创建一个临时的对象集合,每一个对象包含原始集合对象中的所有字段. Note:这里是包含而不是这个原实集合的字 ...

  6. ThinkPHP的主从数据库配置

    Thinkphp 框架本身是支持读写分离的,如何做呢?   最简单的做法是在配置文件中修改:   PHP代码 'DB_TYPE'=> 'mysql', 'DB_DEPLOY_TYPE' => ...

  7. nyoj 275-队花的烦恼一 (stack, push, pop)

    275-队花的烦恼一 内存限制:64MB 时间限制:3000ms 特判: No 通过数:11 提交数:14 难度:1 题目描述: ACM队的队花C小+经常抱怨:“C语言中的格式输出中有十六.十.八进制 ...

  8. 逆向libbaiduprotect(三)- 移植python操作dalvik虚拟机c++函数,配合gdb控制程序运行流程

    python编译移植到测试机,并且移植ctypes模块.利用ctypes代替c程序,利用dalvik内部c++函数,在运行过程中手动命令操控dalvik虚拟机,并结合gdb进行调试.绕过zygote和 ...

  9. ubuntu 16.04 和 windows 10系统安装mysql 允许远程访问 | mysql user guide on ubuntu 16.04 and windows 10

    本文首发于个人博客https://kezunlin.me/post/36e618e7/,欢迎阅读! mysql user guide on ubuntu 16.04 and windows 10 Pa ...

  10. QTabWidget 头部背景色设置和QTabWidget 样式设置

    1.问题:QTabWiget的头部背景色通过设置background-color属性没有生效,网上找了很多方法,也不生效. 2.解决办法:在Qt Designer中将autoFillBackgroun ...