war 包的部署

发送反馈


SuperMap iServer 的 iserver.war 包部署成功后,访问的 URI 为:http://<server>:<port>/iserver/services。若 iserver.war 被重命名,比如被重命名为 renameiserver.war,则需要修改 URI 为 http://<server>:<port>/renameiserver/services。

在 Apache Tomcat 上部署

在 Apache Tomcat (以下简称 Tomcat)上部署 SuperMap iServer 前,请检查软件环境是否满足需求,请参考 war 包部署前的环境配置

注意,当使用 8.5.50 及以上版本的 Tomcat 时,需要修改【Tomcat 安装路径】/conf/catalina.properties 文件,需要修改的内容如下:

tomcat.util.scan.StandardJarScanFilter.jarsToSkip=*.jar

tomcat.util.scan.StandardJarScanFilter.jarsToScan=\

log4j-taglib*.jar,\

log4j-web*.jar,\

log4javascript*.jar,\

slf4j-taglib*.jar,\

*adminui*.jar,\

*webui*.jar,\

*vue*.jar,\

*axios*.jar,\

*webjar*.jar,\

*swagger-ui*.jar

启动 Tomcat,把 war 包放入如下目录:【Tomcat 根目录】\webapps,Tomcat 就可以将 war 包发布为 Web 服务。例如启动 Tomcat,把 iserver.war 放入 webapps 目录,就完成了 SuperMap iServer 核心功能的启动。访问 http://<server>:<port>/iserver/services,就能获取 SuperMap iServer 所有可用服务的列表。使用 iserver#help.war 将帮助文档发布为在线形式后,访问的 URI 为:http://<server>:<port>/iserver/help。使用 iserver#iClient.war 将 iClient 发布为在线服务后,访问的 URI 为:http://<server>:<port>/iserver/iClient。

在 Apusic Application Server 上部署

在 Apusic Application Server 上部署 SuperMap iServer 前,请检查软件环境是否满足需求,请参考 war 包部署前的环境配置

Windows 系统下,在 Apusic Application Server(以下简称 Apusic)上部署 SuperMap iServer 的过程如下:

启动 Apusic,把 war 包放入如下目录:【Apusic 根目录】\domains\【domainname】\applications,Apusic 就可以将 war 包发布为 Web 服务。其中【domainname】是正在运行的 Apusic 领域名。对于 iserver#help.war 和 iserver#iClient.war,需要将它们重命名使得名称中不包含特殊符号“#”后再部署,如将 iserver#help 改为 help.war。

启动 Apusic 后,可以通过访问 Apusic 的管理界面,即 http://<server>:<port>/admin 来查看 war 包的部署情况。也可以通过该管理界面进行 war 包的部署。

在 GlassFish 上部署

在 GlassFish 上部署 SuperMap iServer 前,请检查软件环境是否满足需求,请参考 war 包部署前的环境配置

GlassFish 支持自动部署、命令行部署及通过管理界面部署应用程序,有关命令行部署及通过管理界面部署方式请参见 GlassFish 的帮助。下面介绍在 GlassFish 3.1 上自动部署 SuperMap iServer 的过程。

启动 GlassFish,将 war 包放入【GlassFish 根目录】\glassfish\domains\【domain-name】\autodeploy 目录下,GlassFish 就可以将 war 包发布为 Web 服务,其中【domain-name】指正在运行的 GlassFish 领域名。对于 iserver#help.war 和 iserver#iClient.war,需要将它们重命名使得名称中不包含特殊符号“#”,如将 iserver#help 改为 help.war。

启动 GlassFish 后,可以通过访问 GlassFish 的管理界面,即 http://<server>:<port>/common/index.jsf (GlassFish 默认的管理端口是 4848)来查看 war 包的部署情况。也可通过该管理界面进行 war 包的部署。

注意:

GlassFish 的运行需要完整的 JDK 而不是 JRE,且需要把 %JAVA_HOME%\Bin 加入 PATH 中。

在 WildFly Application Server 上部署

在 WildFly Application Server 上部署 SuperMap iServer 前,请检查软件环境是否满足需求,请参考 war 包部署前的环境配置

Windows 系统下,在 WildFly 10.1.0.Final 上部署 SuperMap iServer 的过程如下:

1. 解压缩 war 包到如下目录:【WildFly 根目录】\standalone\deployments,并重命名,使得解压缩后的文件夹名称以.war 结尾,如将 war 包 iserver.war 解压缩后重命名为 iserver.war。对于 war 包 iserver#help 和 iserver#iClient,还须使解压缩后的文件夹名称中不包含特殊符号“#”,如分别重命名为 help.war 和 iClient.war。在该文件夹下创建3个空文件,并分别命名为:help.war.dodeploy、iClient.war.dodeploy、iserver.war.dodeploy。

2. 发布 iserver 时,修改【WildFly 根目录】\standalone\configuration\standalone.xml 文件,删去下面两行。

<extension module="org.jboss.as.jaxrs"/>

<subsystem xmlns="urn:jboss:domain:jaxrs:1.0"/>

另外,还需要在 standalone.xml 文件中的以下标签内添加 max-post-size="2147483648" ,此值单位为 字节,即设置允许向 iServer 上传的文件大小最大为2G,您可以根据具体业务需求设置。如果不设置,则 WildFly 默认允许上传的文件大小最大为10M。

<http-listener name="default" socket-binding="http" redirect-socket="https" enable-http2="true" max-post-size="2097152"/>

3. 将 help.war\html 目录下的 OnlineHelp.zip 解压到当前目录。

4. 启动 WildFly,即在【WildFly 根目录】\bin 目录下,运行 standalone.bat,即可将 SuperMap iServer 的 war 包发布为 Web 服务。

启动 WildFly 后,可以通过访问 WildFly 的管理界面,即 http://<server>:<port>/admin-console 来查看 war 包的部署情况。也可以通过管理界面进行 war 包的部署。

注意

1. 在 WildFly 上部署的 iServer 服务,启动 WildFly 时需要添加-b 0.0.0.0参数,才能在其他计算机上访问,否则只能在本机访问服务。如 Windows 操作系统上可通过命令行启动 WildFly:

standalone.bat -b 0.0.0.0

Linux 操作系统上启动 WildFly 的方法为:

./standalone.sh -b 0.0.0.0

2. 在 WildFly 中部署 SuperMap iServer 服务时,建议目录里不要包含非英文字符。

3. 在 WildFly 中部署 SuperMap iServer 服务时,用户需要在 【WildFly 根目录】\modules\system\layers\base\sun\jdk\main\module.xml 文件的 paths 节点添加下面四个依赖:

<path  name="sun/java2d"/>

<path  name="sun/java2d/pipe"/>

<path  name="com/sun/net/httpserver"/>

<path  name="com/sun/org/apache/xml/internal/security/exceptions"/>

在 Oracle WebLogic Server 上部署

在 WebLogic 上部署 SuperMap iServer 前,请检查软件环境是否满足需求,请参考 war 包部署前的环境配置

Windows 系统下,在 WebLogic 上部署 SuperMap iServer,包含如下步骤:

1.重命名 iserver#help.war 和 iserver#iClient.war,使得名称中不包含特殊符号“#”,如分别将其重命名为 help.war 和 iClient.war。

2.启动 WebLogic,把 war 包放在创建的 WebLogic 域的 autodeploy 目录下,WebLogic 就可以将 war 包发布为 Web 服务。如 Windows 系统上创建的 WebLogic 域为 C:\wls1033_dev\user_projects\domains\SuperMapiServer,则将 war 包放在 C:\wls1033_dev\user_projects\domains\SuperMapiServer\autodeploy 下。

启动 WebLogic 后,可以通过访问 WebLogic 的管理界面,即 http://<server>:<port>/console 来查看 war 包的部署情况。也可以通过管理界面进行 war 包的部署。

若在部署时遇到 PermGen space 的错误,请将当前所使用 WebLogic 域的 PermSize 设为 256M,具体方法请参见FAQ

在 TongWeb 上部署

在 TongWeb 上部署 Supermap iServer 前,请检查软件环境是否满足需求,请参考 war 包部署前的环境配置

Windows 系统下,在不同版本的TongWeb上部署iServer,步骤也稍有不同,具体包含如下步骤:

TongWeb 5.0

1.为 TongWeb 指定 SuperMap iObjects Java 的路径,即在【TongWeb 根目录】\bin\startserver.bat 的 Djava.library.path 中加入 SuperMap iObjects Java 的 bin 路径,如 Djava.library.path=”C:\SMO_Java_602_7119_Bin\Bin”。

2.把解压后的 war 包放入如下目录:【TongWeb 根目录】\autodeploy,对于 iserver#help.war 和 iserver#iClient.war,需要将它们重命名使得名称中不包含特殊符号“#”后再部署,如将 iserver#help.war 改为 help.war。启动 TongWeb,就可以将 war 包发布为 Web 服务。

3.在【TongWeb 根目录】\config\twns.xml 中找到 help 和 iClient 对应的 web-app 节点,将 context-root 分别改为 iserver/help 和 iserver/iClient。

4.启动 TongWeb 后,可以通过访问 TongWeb 的管理界面,来查看 war 包的部署情况。也可通过该管理界面进行 war 包的部署。TongWeb 5.0的管理控制台地址为 http://<server>:<port>/twns。

TongWeb 6.X

自动部署iserver.war

1.在【TongWeb 根目录】\bin\startserver.bat文件中设置如下内容:

set JAVA_OPTS=%JAVA_OPTS% -Dcom.sun.jersey.server.impl.cdi.lookupExtensionInBeanManager=true。

2.修改 【TongWeb 安装路径】/conf 文件夹下的配置文件(tongweb.properties)。在配置文件中加入如下内容:

tongweb.util.scan.StandardJarScanFilter.jarsToSkip=jersey-*.jar,hadoop-*.jar

3.把解压后的 war 包放入如下目录:【TongWeb 根目录】\autodeploy,对于 iserver#help.war 和 iserver#iClient.war,需要将它们重命名使得名称中不包含特殊符号“#”后再部署,如将 iserver#help.war 改为 help.war。启动 TongWeb,就可以将 war 包发布为 Web 服务。

4. 启动 TongWeb 后,可以通过访问 TongWeb 的管理界面,来查看 war 包的部署情况。

 

通过管理控制台部署iserver.war

1.在【TongWeb 根目录】\bin\startserver.bat文件中设置如下内容:

set JAVA_OPTS=%JAVA_OPTS% -Dcom.sun.jersey.server.impl.cdi.lookupExtensionInBeanManager=true

2.修改 【TongWeb 安装路径】/conf 文件夹下的配置文件(tongweb.properties)。在配置文件中加入如下内容:

tongweb.util.scan.StandardJarScanFilter.jarsToSkip=jersey-*.jar,hadoop-*.jar

3.在浏览器中输入TongWeb 管理控制台地址:http://<server>:<port>/console

4.输入登录TongWeb的用户名、密码。TongWeb6.0 默认用户名为twnt,密码为twnt123.com

5.依次点击“应用管理”、“部署应用”

6.“文件位置”需选择“服务器”,选择iserver.war所在的位置,点击“开始部署”

7.依照顺序填写应用部署的附加信息,也可均采用默认值。点击“完成”

8.部署完成后,在“应用管理”页面进行查看,状态为“已启动”表示部署成功。点击“访问”,即可访问iServer。

TongWeb 7.0

TongWeb 7.0 的部署过程与 TongWeb 6.X 基本一致,可参考 6.X 的配置步骤部署。

跨域访问配置

若您需要在 iServer 启动后允许来自其他服务器的跨域请求访问成功,可以通过修改 web.xml 配置文件(位于【TongWeb 根目录】\autodeploy\iserver\WEB-INF目录下)来进行跨域访问的相关配置,添加如下内容:

    <filter>
        <filter-name>CorsFilter</filter-name>
        <filter-class>com.tongweb.catalina.filters.CorsFilter</filter-class>
        <async-supported>true</async-supported>
        <init-param>
            <param-name>cors.allowed.origins</param-name>
            <param-value>*</param-value>
        </init-param>
        <init-param>
            <param-name>cors.allowed.methods</param-name>
            <param-value>GET,POST,HEAD,OPTIONS,PUT,DELETE</param-value>
        </init-param>
        <init-param>
            <param-name>cors.allowed.headers</param-name>
            <param-value>Content-Type,X-Requested-With,accept,Origin,Access-Control-Request-Method,Access-Control-Request-Headers</param-value>
        </init-param>
        <init-param>
            <param-name>cors.exposed.headers</param-name>
            <param-value>Access-Control-Allow-Origin,Access-Control-Allow-Credentials</param-value>
        </init-param>
        <init-param>
            <param-name>cors.support.credentials</param-name>
            <param-value>false</param-value>
        </init-param>
    </filter>
    <filter>
        <filter-name>httpHeaderSecurity</filter-name>
        <filter-class>com.tongweb.catalina.filters.HttpHeaderSecurityFilter</filter-class>
        <init-param>
            <param-name>antiClickJackingEnabled</param-name>
            <param-value>true</param-value>
        </init-param>
        <init-param>
            <param-name>antiClickJackingOption</param-name>
            <param-value>SAMEORIGIN</param-value>
        </init-param>
        <init-param>
            <param-name>blockContentTypeSniffingEnabled</param-name>
            <param-value>false</param-value>
        </init-param>
        <async-supported>true</async-supported>
    </filter>
   ...
   <filter-mapping>
        <filter-name>CorsFilter</filter-name>
        <url-pattern>/*</url-pattern>
   </filter-mapping>
   <filter-mapping>
        <filter-name>httpHeaderSecurity</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

请注意,在 web.xml 中定义 Filter 和 FilterMappping 时,各 Filter 的加载和执行有严格的顺序关系,该顺序关系和各 web filter 的定义顺序一致。若您需要更精准地控制跨域访问请求,请参阅:配置启动跨域访问白名单。修改完成后,重启 tongweb 服务,即可进行从其他服务器对本机 iServer 的跨域访问。

在 WebSphere Application Server 上部署

操作流程

在 WebSphere Application Server 上(以 WAS7为例)部署 SuperMap iServer 的过程:

1.WAS 启动成功后,浏览器中输入 http://<server>:<port>/ibm/console 登录 WAS 的管理控制台,在 Applications→Application Types→WebSphere enterprise applications 选项卡中,单击 install 即可开始安装,如下图:

用户还可在此界面选择某个服务控制服务的启动/停止状态。

注意:对于 iserver#help.war 和 iserver#iClient.war,需要将它们重命名使得名称中不包含特殊符号“#”,如将 iserver#help.war 改为 help.war。

2. 在如下对话框中,用户可从本地或远程文件系统中选择 war 包进行安装。选择之后单击“Next”按钮;

3.在“Preparing for the application Installation”中可选择“Fast Path”和“Detailed”进行安装,前者是仅当需要其他信息时才提示,后者会显示所有的安装选项和参数。这里选择“Fast Path”,单击“Next”按钮;

4.在“Select Installation options”中指定可用于准备和安装应用程序的各种选项,这里保持默认,单击“Next”按钮;

5.在“Map modules to servers”中将模块映射至服务器,可将模块安装在同一服务器上或安装在几台服务器上,也可以安装在 Web 服务器上。若有多个服务器可以选择,则可选择欲安装的目标服务器,若只有一个服务器,则不用选择,默认安装在当前服务器。单击“Next”按钮;

6.在“Map virtual hosts for Web modules”一步中,若有多个 virtual host,选择欲映射的一个,若只有一个,则可以不选,默认使用当前 virtual host。如下图,单击“Next”按钮;

7.在“Map context root for Web modules”一步中为 Web 应用配置上下文根路径,如下图,SuperMap iServer 的核心服务的 Context Root 为 /iserver(如果 iserver.war 被重命名,比如被重命名为 renameiserver.war,则 Context Root 应为/renameiserver):

OnlineHelp 的 Context Root 为 /iserver/help,客户端软件开发工具包 iClient 的 Context Root 为 /iserver/iClient。

8.在“Summary”一步选择“Finish”,然后在接下来的一步单击“Save”保存配置,如下图:

9. 配置参数 com.ibm.ws.classloader.strict,将其值定义为 true。即单击 Servers→Server Types→WebSphere application servers→“server_name”,然后进入 Java and process management→Process definition→Java virtual machine→Custom properties 界面,单击“New”按钮,如下图所示:

注意:上图是 WebSphere 7.0.0.11 的配置界面。

10. 配置完成之后单击“Save”保存配置。

在 Jetty 上部署

在 Jetty 上部署 Supermap iServer 前,请检查软件环境是否满足需求,请参考 war 包部署前的环境配置

Jetty 支持自动部署和编写配置文件部署应用程序。通过编写配置文件方式,部署应用程序请参见 Jetty 的帮助。下面介绍在 Jetty 8.1 上自动部署 SuperMap iServer 的过程。

1、解压缩 SuperMap iServer 的 war 包到某个目录,然后将解压缩包中名为 iserver.war 文件,放到【Jetty 根目录】\webapps 目录下,启动 Jetty ,Jetty  就可以将 iserver.war 发布为 Web 服务 。

进入 Jetty 根目录,打开命令行窗口,输入如下命令,即可启动 Jetty 服务。

java -jar start.jar

进入命令行窗口,通过 ctrl+c 快捷方式,即可关闭启动的 Jetty 服务。

2、对于解压缩包中名为 iserver#help.war 和 iserver#iClient.war 文件,需要将它们重命名使得名称中不包含特殊符号“#”后再部署,如将 iserver#help 改为 help.war ,iserver#iClient.war 改为 iClient.war,然后将 help.war 和 iClient.war 文件放在【Jetty 根目录】\webapps 目录下。

3、此时启动 Jetty ,Jetty  可以将 help.war 和 iClient.war 发布为 Web 服务 ,将 help.war 发布为在线形式后,访问的 URI 为:http://<server>:<port>/help, 将  iClient.war 发布为在线服务后,访问的 URI 为:http://<server>:<port>/iClient。我们期望访问 help 的 URI 地址为:http://<server>:<port>/iserver/help,访问 iClient 的 URI 为:http://<server>:<port>/iserver/iClient。

4、想要按期望的  URI 地址访问 help 和 iClient 只需做如下操作即可,以 help 为例做说明:

     <Set name="contextPath">/iserver/help</Set>

     <Set name="war"><SystemProperty name="jetty.home" default="."/>/webapps/help.war</Set>

     <Set name="overrideDescriptor"><SystemProperty name="jetty.home" default="."/>/contexts/test.d/override-web.xml</Set>

 

注:通过web中间件的管理控制台重新部署iserver.war后,需要重启web中间件,否则会导致iServer启动失败。