部署SuperMap iServer war包时的服务迁移

前言

        目前SuperMap iServer war包可部署在多种操作系统下的多种中间件中。使用war包部署 SuperMap iServer时,需要先安装并配置JRE/JDK、SuperMap iObjects Java环境等。 

        而在部署iServer war包时我们会遇到这种问题:在部署war之前一直使用的SuperMap iServer的完整包,而现在因为遇到一些特殊情况需要将SuperMap iServer重新部署到新的中间件比如:

  1. SuperMap iServer自带的Apache Tomcat版本太低,不符合项目实际使用要求,需要升级Apache Tomcat版本;

  2. 由于项目以及实际情况,不能使用Apache Tomcat,需要更换为其他的中间件产品,如东方通TonggWeb、金蝶Apusic Application Server、中创InforSuite AS等。

        那么当遇到上述的问题时,对于已经在iServer完整包上发布使用中的服务是否能也将其同步迁移到新部署好的中间件的SuperMap iServer war包中呢?

        我们都知道,在普通的SuperMap iServer中,我们可以通过两种方式来进行服务迁移:1、将原iServer的webapps\iserver\WEB-INF目录下的iserver-services.xml文件替换到新iServer的相同目录下;2、在原iServer界面中使用“备份与恢复”功能生成备份包,然后放到新包的相同位置,再在新iServer中使用“备份与恢复”功能恢复备份包,这样的话服务就迁移到新的iServer中了。

        那么接下来就提供大家两种思路来解决在部署war包时如何进行服务迁移的问题。

iServer war包的服务迁移

        通过上述的情况我们需要了解针对war包的服务迁移具体是迁移什么,怎么迁移;首先我们需要先知道iServer.war包是支持在什么中间件上部署、怎么部署的、这个war包中都包含什么内容、部署完成后又该怎么使用;

表 1:SuperMap iServer war包支持的中间件

中间件名称

版本

Apache Tomcat8.5.x
GlassFish3.x
IBM WebSphere Application Server8.5.5.9
WildFly Application Server10.1.0.Final
Jetty8.x/9.x
Oracle WebLogic Server12c(12.1.3)
金蝶 Apusic Application Server6.0
东方通 TongWeb5.0/6.0/7.0

表 2:SuperMap iServer war完整包中所包含的内容

文件名内容说明
iserver.waruperMap iServer 的核心部分,包含库文件、配置文件、示范数据等信息。使用该 war 包可以获取 SuperMap iServer 服务器端的所有功能。iserver.war 发布后访问的 URI 为:http://<server>:<port>/iserver/services。若 iserver.war 被重命名,比如重命名为 renameiserver.war,则访问地址就是 http://<server>:<port>/renameiserver/services。
iserver#help.warSuperMap iServer 的帮助文档和示例代码,使用该 war 包可以将帮助文档发布为在线形式。
iserver#iClient.warSuperMap iServer 的客户端软件开发工具包,即 iClient。war 包中包含 iClient 库文件、iClient 帮助文档和 iClient 示例代码。使用该 war 包可以获取 iClient 的示范程序效果。
Guide_smiserver_war_chn.pdfSuperMap iServer 的自述文件。
BUILD_*文件SuperMap iServer 的版本(由*的内容标识)。
licenses存放 SuperMap iServer 用到的开源库的许可协议和声明。
support_win_x64.zip用于Windows x64系统的依赖项,包括SuperMap iObjects Java、JRE、SuperMap许可配置管理工具的安装包、vcredist等。
support_linux_x64.tar.gz用于Linux x64系统的依赖项,包括SuperMap iObjects Java、JRE等。
support_arm64.tar.gz用于ARM 64 系统的依赖项,包括SuperMap iObjects Java、JRE等。

        针对具体的中间件,SuperMap iServer war包都有不太相同的操作部署方法,这里我们可以参考SuperMap iServer的帮助文档来选择合适的操作war 包的部署 (supermap.com.cn)部署。

        通过上述的操作我们已经将SuperMap iServer war包部署到满足实际要求的中间件中,这里可以在中间件的文件夹中发现,拷贝到其相应目录下的iserver.war、iserver#help.war、iserver#iClient.war的这三个war包会自动解压,其解压后的目录结构分别描述如下:

表 3:SuperMap iServer war包解压后的目录结构

iserver.wariserver#help.wariserver#iClient.war
data 文件夹:SuperMap iServer 中的示范数据。

html 文件夹:HTML 格式的 SuperMap iServer 帮助,用于发布在线帮助。

forJavaScript 文件夹:在服务式 GIS 架构体系中,面向 HTML 5 的应用开发,支持多终端、跨浏览器的客户端开发平台。

for3D 文件夹:基于 SuperMap UGC 底层类库和 OpenGL 三维图形处理库的三维功能开发包。

META-INF 文件夹:包含 MANIFEST.MF 文件,描述 SuperMap iServer 10i(2021) 的版本信息。

META-INF 文件夹:包含 MANIFEST.MF 文件,描述 SuperMap iServer 10i(2021) 的版本信息。

META-INF 文件夹:包含 MANIFEST.MF 文件,描述 SuperMap iServer 10i(2021) 的版本信息。

output 文件夹:SuperMap iServer 缓存图片的默认输出路径。

samplecode 文件夹:SuperMap iServer 服务器端的示范代码。

resources 文件夹:存放 iserver#iClient.war 首页用到的图片。

resources 文件夹:存放 SuperMap iServer 首页用到的图片、css 文件、js 文件等。*.chm 文件:CHM 格式的 SuperMap iServer 帮助。index.htm 文件:客户端软件开发工具包(iClient)内容的列举。
WEB-INF 文件夹:存放 SuperMap iServer 依赖的 jar 文件、配置文件等信息。WEB-INF 文件夹:Web 配置文件。

WEB-INF 文件夹:Web 配置文件。

        接下来就到了关键步骤了,通过上面的信息,我们知道war包部署主要是针对iserver.war这个包来的,解压完成后会生成一个“iserver”的文件夹,而主要的数据、配置文件等都是存在这个文件夹下的,所以我们可以通过这个思路来扩展,将原有的服务迁移到新的war包中;那么下面将以tomcat为例来实现war包的服务迁移;

一、替换已经部署好的war包的数据和配置文件

        首先我们先在Apache Tomcat中部署好从官网下载的SuperMap iServer war包,启动tomcat并访问iServer正常 (http://localhost:8080/iserver),访问访问列表,可以看到都是iServer范例服务;

        接下来就可以直接在已经部署好的新iserver中通过以下操作对数据和配置文件进行修改和迁移即可完成;

        1、由于目前iserver/data中存放的都是iServer的范例数据,所以我们需要将原iServer的数据也都重新存放到这个data目录下,将原data移除或重命名;

        2、然后删除META-INF目录下的“war-tracker”文件(该文件是属于解压war包时生成的追踪器,对于新的内容,需要删除),清除output中的缓存;

        3、将WEB-INF下的iserver-services.xml文件替换为原iServer的,在替换xml文件时需要注意将文件的绝对路径改为相对路径并使其位置指向为/data目录下另存的数据(如果不需要原来的范例服务,需要将iserver-services-samples.xml文件也删除即可);

        4、最后再重新启动Tomcat,访问iServer发现当前的服务列表中只有最开始的服务,说明服务迁移正常。

二、将原有的iServer中将相应的内容重新打包成war

        通过第一种方法中我们可以了解到,大多数中间件在部署时是直接去读取iserver.war包,然后再自行解压分配部署的,所以这里我们的第二种方法就可以按照这种思路将需要的内容重新打包成war,然后使其直接读取即可。

        接下来就可以直接在原iServer的webapps\iserver目录中通过以下操作对需要的内容进行重新修改迁移和配置后打包即可;

        1、将原来已经发布成服务的数据都迁移到一个新的文件夹中,并对这个文件夹命名成data,

        2、将iserver.war包中的META-INF文件夹拷贝到当前目录,

        3、清空output目录下的所有缓存文件夹及文件,

        4、修改iserver-services.xml文件,将xml文件中的包含数据的参数路径由绝对路径全部都修改为相对路径,而这个相对路径是对于1中的data目录,

        5、需要注意,当前的WEB-INF文件夹中还包含关于war包配置的其他文件,也需要考虑到,这里我们可以直接将iserver.war包中的WEB-INF目录进行替换,然后直接修改iserver-services.xml文件,

        6、最后重新将这个iserver目录使用命令jar -cvf iserver.war *打包成iserver.war的格式,然后将war包放到tomcat的webapps目录下,再重新启动启动tomcat访问iServer(http://localhost:8080/iserver)发现原iServer的服务已经正常迁移到tomcat中间件中。

 注意事项

1)在通过两种方法迁移服务时我们可以发现,要迁移服务的数据全都是存放在webapps\iserver\data这个目录下,这个目录不能动;

2)迁移服务的配置文件iserver-services.xml文件中关于数据路径一定要写成相对路径“./data/****”;

3)关于WEB-INF目录一定要注意到其中还包含有war包配置的其他文件,为了节省操作步骤,可以考虑直接拷贝iserver.war包中的内容。

扩展

        关于iServer.war包的普通服务迁移已经完成,那么针对其他服务,比如处理自动化服务、使用iServer内置的spark等又该如何迁移呢?
        要使用war包的处理自动化服务,请先确认war 包部署前的环境配置是否正确,war包部署成功后,需要在各平台上依次进行以下操作来配置处理自动化服务的环境:

war 包的处理自动化服务配置
        1、解压对应平台的 support 压缩文件,可看到其目录下有 geoprocessing、objectsjava、iObjectsForSpark 和 spark 文件夹;(support_win_x64.zip 或 support_linux_x64.tar.gz 或 support_arm64.tar.gz)

        2、在 iserver 文件夹(中间件部署 iserver.war 时生成的)所在目录的上一级新建 support 文件夹,将步骤1解压目录中的 geoprocessing、objectsjava、iObjectsForSpark 和 spark 文件夹放置其中;

        3、再重新启动中间件后,再访问iServer,即可发现处理自动化服务能正常访问并使用了。

war 包的内置spark集群配置

        参考上述的处理自动化服务配置即可,还需要配置相应的集群环境。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值