zoukankan      html  css  js  c++  java
  • 把MapXtreme for Java迁移到Tomcat 5.5上

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

    一、升级过程

    1、下载 Tomcat 5.5.15,下载地址为:http://tomcat.apache.org/

    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 启动)就不会发生停顿了。

  • 相关阅读:
    Android 废弃方法属性解决
    Android RecycleView分组
    Android 第三方库FlycoTabLayout
    Android 自定义dialog出现的位置
    Android 底部弹窗实现
    Android 自定义设置布局
    Android 微信、qq分享文本 (Intent)
    SpringBoot关于跨域的三种解决方案
    记录一次通用Mapper+自定义mapper出现的问题分析以及排查
    IDEA配置Maven+新建Maven项目
  • 原文地址:https://www.cnblogs.com/googlegis/p/2978958.html
Copyright © 2011-2022 走看看