把 MapXtreme for Java 迁移到 Tomcat 5.5 上-阿里云开发者社区

开发者社区> 开发与运维> 正文

把 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,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章