把 MapXtreme for Java 迁移到 Tomcat 5.5 上

    MapXtreme for Java 4.7.1,默认集成了 Tomcat 4.1.18,版本比较低。在实际工程中,可能需要升级到更高版本。本文解释了升级到 5.5.15 的过程。

一、升级过程

1、下载 Tomcat 5.5.15,下载地址为: [url]http://tomcat.apache.org/[/url]
2、把 Tomcat 5.5.15 解压到 MapXtreme 的安装目录下,假设解压后的目录名称为:
   E:\MapInfo\MapXtreme-4.7.1\Tomcat-5.5
3、把 E:\MapInfo\MapXtreme-4.7.1\Tomcat-4.1\webapps 目录下的所有内容都拷贝到高版本的 Tomcat 中去:E:\MapInfo\MapXtreme-4.7.1\Tomcat-5.5\webapps
4、修改 E:\MapInfo\MapXtreme-4.7.1\bin 目录下的 startup.bat 和 shutdown.bat,把其中的“Tomcat-4.1”全部替换成“Tomcat-5.5”(我的实际做法是:把原始的 startup.bat 和 shutdown.bat 重命名为 startup41.bat 和 shutdown41.bat,改动过后的命名为 startup55.bat 和 shutdown55.bat)
5、(可选)删除 E:\MapInfo\MapXtreme-4.7.1\Tomcat-4.1 目录(我就没删,保留两个版本,方便调试)

二、过程分析

    其实 MapXtreme for Java 4.7.1 并没有用到 Tomcat 的太多功能,只是把它当作一个 Web Container。
    在 MapXtreme-4.7.1/bin 目录下,startup.bat 和 shutdown.bat 也是调用具体的 Tomcat/bin/Catalina.bat,此时只要把目录换掉,即可完成正常的启动和停止。

三、遗留问题

1、如果要把 MapXtreme 迁移到其它 Web Container 上,例如 WebLogic,则有一定的麻烦。因为 MapXtreme-4.7.1/bin 下的那两个 exe 文件,即 MapXtreme 自身的管理程序,是通过调用 Tomcat 自带的名称为 manager 的 WebApp 来完成的。WebLogic 没有这个 WebApp。

解决办法:保留 Tomcat 和 WebLogic 双环境。把 wars 按正常的方式部署到 WebLogic 中,并对外提供地图访问服务;只有当需要进行管理操作(例如修改地图)时,才去启动 Tomcat 版本,当管理操作完成后,关闭 Tomcat。此时,地图数据等已经被存储到一个独立的目录(例如 E:\MapInfo\MapXtreme-4.7.1\examples\server\data)下去了,该目录与 Tomcat 或 WebLogic 都无关。
该解决方法仅仅是一种猜测,没有实际验证过。也许不需要这么麻烦。

2、升级后,自带的例子中,HTMLEmbeddedMapServlet 的页面上不能正常显示中文(我的操作系统是英文的,在中文操作系统上可能不会出问题),出现许多问号。这是因为在该 Servlet 的源码(E:\MapInfo\MapXtreme-4.7.1\examples\server\java\servlet\HTMLEmbeddedMapServlet.java)的第 380 行有一句“res.setLocale(req.getLocale());”,Tomcat 4.1 和 Tomcat 5.5 对该句的处理方式不一样。
在编写自已的程序时,该处不使用 req.getLocale(),而是指定一个 Locale 即可。

3、启动 Tomcat 时,有时会停顿很长时间。
解决方法:先强制关闭停顿着的窗口,然后把 Tomcat 目录下的 work 目录的内容全部删除掉,再启动 Tomcat(通过 MapXtreme-4.7.1/bin/startup.bat 启动)就不会发生停顿了。









本文转自 豪客 51CTO博客,原文链接:http://blog.51cto.com/wakan/7223,如需转载请自行联系原作者
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值