把 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,如需转载请自行联系原作者
目录
相关文章
|
17天前
|
NoSQL Java 关系型数据库
Liunx部署java项目Tomcat、Redis、Mysql教程
本文详细介绍了如何在 Linux 服务器上安装和配置 Tomcat、MySQL 和 Redis,并部署 Java 项目。通过这些步骤,您可以搭建一个高效稳定的 Java 应用运行环境。希望本文能为您在实际操作中提供有价值的参考。
95 26
|
4月前
|
Java 关系型数据库 MySQL
"解锁Java Web传奇之旅:从JDK1.8到Tomcat,再到MariaDB,一场跨越数据库的冒险安装盛宴,挑战你的技术极限!"
【8月更文挑战第19天】在Linux上搭建Java Web应用环境,需安装JDK 1.8、Tomcat及MariaDB。本指南详述了使用apt-get安装OpenJDK 1.8的方法,并验证其版本。接着下载与解压Tomcat至`/usr/local/`目录,并启动服务。最后,通过apt-get安装MariaDB,设置基本安全配置。完成这些步骤后,即可验证各组件的状态,为部署Java Web应用打下基础。
66 1
|
4月前
|
Java 应用服务中间件 Windows
【应用服务 App Service】App Service 中部署Java项目,查看Tomcat配置及上传自定义版本
【应用服务 App Service】App Service 中部署Java项目,查看Tomcat配置及上传自定义版本
|
4月前
|
网络协议 Java 应用服务中间件
Tomcat源码分析 (一)----- 手撕Java Web服务器需要准备哪些工作
本文探讨了后端开发中Web服务器的重要性,特别是Tomcat框架的地位与作用。通过解析Tomcat的内部机制,文章引导读者理解其复杂性,并提出了一种实践方式——手工构建简易Web服务器,以此加深对Web服务器运作原理的认识。文章还详细介绍了HTTP协议的工作流程,包括请求与响应的具体格式,并通过Socket编程在Java中的应用实例,展示了客户端与服务器间的数据交换过程。最后,通过一个简单的Java Web服务器实现案例,说明了如何处理HTTP请求及响应,强调虽然构建基本的Web服务器相对直接,但诸如Tomcat这样的成熟框架提供了更为丰富和必要的功能。
|
4月前
|
jenkins 持续交付 开发工具
"引爆效率革命!Docker+Jenkins+GIT+Tomcat:解锁持续集成魔法,一键部署Java Web应用的梦幻之旅!"
【8月更文挑战第9天】随着软件开发复杂度的增加,自动化变得至关重要。本文通过实例展示如何结合Docker、Jenkins、Git与Tomcat建立高效的持续集成(CI)流程。Docker确保应用环境一致性;Jenkins自动化处理构建、测试和部署;Git管理源代码版本;Tomcat部署Web应用。在Jenkins中配置Git插件并设置项目,集成Docker构建Tomcat应用镜像并运行容器。此外,通过自动化测试、代码质量检查、环境隔离和日志监控确保CI流程顺畅,从而显著提高开发效率和软件质量。
88 3
|
3月前
|
关系型数据库 Java MySQL
"解锁Java Web传奇之旅:从JDK1.8到Tomcat,再到MariaDB,一场跨越数据库的冒险安装盛宴,挑战你的技术极限!"
【9月更文挑战第6天】在Linux环境下安装JDK 1.8、Tomcat和MariaDB是搭建Java Web应用的关键步骤。本文详细介绍了使用apt-get安装OpenJDK 1.8、下载并配置Tomcat,以及安装和安全设置MariaDB(MySQL的开源分支)的方法。通过这些步骤,您可以快速构建一个稳定、高效的开发和部署环境,并验证各组件是否正确安装和运行。这为您的Java Web应用提供了一个坚实的基础。
57 0
|
4月前
|
缓存 前端开发 Java
【Azure 应用服务】App Service 使用Tomcat运行Java应用,如何设置前端网页缓存的相应参数呢(-Xms512m -Xmx1204m)?
【Azure 应用服务】App Service 使用Tomcat运行Java应用,如何设置前端网页缓存的相应参数呢(-Xms512m -Xmx1204m)?
|
6月前
|
Java 应用服务中间件 Apache
安装和配置Apache Tomcat是部署Java Web应用程序的常见任务
安装和配置Apache Tomcat是部署Java Web应用程序的常见任务
180 7
|
6月前
|
Java 关系型数据库 MySQL
杨校老师课堂之Java项目部署到云端服务器之安装MySQL、Jdk、Tomcat
杨校老师课堂之Java项目部署到云端服务器之安装MySQL、Jdk、Tomcat
67 0
杨校老师课堂之Java项目部署到云端服务器之安装MySQL、Jdk、Tomcat
|
7月前
|
前端开发 Java Docker
【分享】记一次项目迁移(docker java | docker python)
该项目是一个前端Vue3和后端Python+Java的应用,原本部署在CentOS7服务器上通过宝塔面板管理。由于服务器即将到期,计划迁移到另一台使用OpenCloudOS和1Plane的服务器。在尝试构建Docker镜像时,首先为Java应用创建Dockerfile,成功构建并运行。对于Python应用,也创建了Dockerfile,并处理了依赖包的安装。在迁移过程中遇到Java项目加载验证码失败的问题,原因是缺少字体配置。通过在宿主机安装fontconfig并将相关字体文件复制到镜像中解决了问题。最后,前端Vue应用作为静态文件运行,如果使用反代理,需要进行相应配置。
107 1