0、背景

之前的地理信息项目应用都是基于ArcGIS平台的,以二维为主,主要用到ArcGIS Server,数据库以Oracle、Postgresql为主,部署比较简单。由于近期三维比较火,所以最近在研究基于ArcGIS Enterprise的二三维一体化的系统开发,希望能将二维的便利性和三维的高大上结合在一起。

之前也对现在比较成熟和流行的二三维基础框架和平台进行了一些研究,其中二维框架大家用的比较多的是:开源框架有OpenLayer、LeafLet、Mapbox;商业框架主要以ESRI的ArcGIS为主,当然还有国内其他的商业GIS平台,像MapGIS、SuperMap等,个人觉得国内的GIS厂商生态做的没有ESRI好;三维框架主要有开源的Cesium和商用的ArcGIS等平台。因为个人比较看重二三维一体化,所以最后还是采用ArcGIS作为基础支撑平台。

在部署ArcGIS Enterprise的时候,其中用到了ArcGIS Webadaptor(JAVA版),需要开启TOMCAT的https,从网上查了些资料,也踩了几个坑,所以,将这个过程记录下来,后续陆续更新完整ArcGIS Enterprise部署的过程,给自己做个备忘,也希望能对其他人有帮助。

1、JAVA JDK部署

Tomcat这个网上材料比较多,比较简单,主要是JDK下载及环境变量的设置。

1.1JDK版本选择

JDK版本可以根据自己的需要选择,不过项目应用还是建议选择稳定版本、长期维护版本,不要使用太新的版本,这里我选择的是jdk11 LTS版。

另外,这里的JDK不光是部署ArcGIS Enterprise的需要,也是后期运行后端JAVA开发所需要的,所以还是建议选用稳定版本。

1.2JDK下载

Oracle官网下载JDK:https://www.Oracle.com/java/technologies/javase-downloads.html

tomcat 调整jvm参数(ArcGISEnterprise部署之二JAVA)(1)

这里选择的是JDK11 LTS版

因为我的服务器使用的Windows Server2019操作系统,所以在下载页面的最下方,选择

Windows x64 Installer

151.83 MB

jdk-11.0.12_windows-x64_bin.exe

Windows x64 Compressed Archive

171.27 MB

jdk-11.0.12_windows-x64_bin.zip

tomcat 调整jvm参数(ArcGISEnterprise部署之二JAVA)(2)

他们分别对应了exe安装程序和zip压缩包,两个都可以。

Oracle官网下载需要用户名和密码登录官网,可能比较麻烦,也可以选择华为云下载:https://repo.huaweicloud.com/java/jdk/,直接选择相应版本就可以了。

tomcat 调整jvm参数(ArcGISEnterprise部署之二JAVA)(3)

在华为云下载jdk11

1.3JDK部署

1.3.1 将下载的jdk-11.0.11_windows-x64_bin.zip解压缩,将文件夹拷贝到一个自己喜欢的位置,我喜欢放在C:\Program Files\Java\jdk-11.0.11这个位置。

1.3.2 设置环境变量:

1)右键我的电脑,选择属性,选择更改设置

tomcat 调整jvm参数(ArcGISEnterprise部署之二JAVA)(4)

2)在系统属性中,选择高级选项卡,点击环境变量按钮

tomcat 调整jvm参数(ArcGISEnterprise部署之二JAVA)(5)

3)在环境变量窗口中,单击系统变量中的新建按钮,变量名:JAVA_HOME,变量值可通过资源目录,导航至jdk所在的目录。

tomcat 调整jvm参数(ArcGISEnterprise部署之二JAVA)(6)

4)在系统变量中,找到Path变量,双击后进入编辑环境变量窗口,单击新建按钮,在下方输入%JAVA_HOME%\bin。

tomcat 调整jvm参数(ArcGISEnterprise部署之二JAVA)(7)

5)至此,环境变量就配置完成了,一路单击确定,关闭环境变量的各个窗口。

1.3.3 验证jdk安装。环境变量配置完成后,利用win r快捷键,调出运行窗口,输入cmd回车,进入cmd窗口。在cmd中输入命令:javac回车,出现图中的提示,代表jdk安装成功了。

tomcat 调整jvm参数(ArcGISEnterprise部署之二JAVA)(8)

可以在输入java -version命令,出现图中提示,代表安装成功了。

tomcat 调整jvm参数(ArcGISEnterprise部署之二JAVA)(9)

1.3.4 其他说明(坑1)

如果利用exe文件安装,安装完成后,如果不设置环境变量,直接在cmd中运行javac、java -version命令,也是会提示正确的信息的。但在开启https时,会用到jdk中的keytool.exe工具,如果不设置环境变量,是无法运行keytool的,所以无论是exe还是zip,还是老老实实将环境变量配置好吧~

2、TOMCAT部署

2.1tomcat版本选择(坑2)

本人对tomcat版本的选择喜欢使用最新版的,因为之前tomcat被爆出存在一些漏洞,所以感觉新版的相对安全一些。最开始时,用的是tomcat10,但是在webadaptor安装后,一直无法访问配置页,在排查了很多问题后,将tomcat换成了8,最后能正常访问了。

我用的是ArcGIS Enterprise10.6,可以在esri官方帮助网站上,查一下自己版本的系统要求,尽量按照官方的制定版本来安装相关环境。

esri官方帮助网站(10.6之后版本):https://enterprise.arcgis.com/zh-cn/system-requirements/10.6/windows/arcgis-web-adaptor-system-requirements.htm

esri官方帮助网站(10.6之前版本):https://resources.arcgis.com/en/help

tomcat 调整jvm参数(ArcGISEnterprise部署之二JAVA)(10)

可以选择自己相应的版本,查看系统的要求

tomcat 调整jvm参数(ArcGISEnterprise部署之二JAVA)(11)

官方给出10.6的tomcat最新支持到8.5,所以开始用的10会出现问题

2.2TOMCAT下载

登录tomcat官网https://tomcat.apache.org/,在左边栏选择对应的版本下载。

tomcat 调整jvm参数(ArcGISEnterprise部署之二JAVA)(12)

tomcat 调整jvm参数(ArcGISEnterprise部署之二JAVA)(13)

我选择的tomcat8,这两个都可以用

第一个是zip压缩包,解压后直接运行就可以了;第二个是Windows的exe安装程序,运行安装就可以了。安装程序的好处是,可以将tomcat作为Windows服务运行,没有碍眼的黑色框框。但我还是习惯在黑框中看一些日志,也能很容易地看出tomcat服务是否在正常运行,所以我选择的是压缩包的版本。

2.3TOMCAT启动

将下载的tomcat压缩包解压,然后拷贝到一个习惯的位置,我是放在E盘根目录下。打开tomcat下的bin文件夹,找到里面的startup.bat文件,双击启动tomcat。

tomcat 调整jvm参数(ArcGISEnterprise部署之二JAVA)(14)

启动后,在黑框中显示Server startup in xx ms,再访问:http://localhost:8080地址,出现下面页面,说明启动成功了。一般只要是将jdk正确安装部署,tomcat是能够正常运行的。

tomcat 调整jvm参数(ArcGISEnterprise部署之二JAVA)(15)

tomcat 调整jvm参数(ArcGISEnterprise部署之二JAVA)(16)

代表tomcat正常启动,但黑框中存在乱码问题

2.4tomcat黑框日志乱码问题解决

tomcat8以及之前的版本,在Windows系统中启动后,黑框中的中文日志都是乱码的(tomcat10是正常的)。此时打开tomcat目录下的conf文件夹,找到logging.properties文件,并用记事本打开,找到java.util.logging.ConsoleHandler.encoding = UTF-8这条记录,将UTF-8改为GBK,重新启动tomcat就恢复正常了。

tomcat 调整jvm参数(ArcGISEnterprise部署之二JAVA)(17)

tomcat 调整jvm参数(ArcGISEnterprise部署之二JAVA)(18)

这时的文字显示就正常了

3、TOMCAT开启https

3.1更改服务器的计算机名称

ArcGIS Enterprise对软件的安装以及配置,都是直接使用域名,没有使用 IP,所以需要使用一个完全限制性域名,也就是说需要在原来的计算机名后面添加 dns 后缀,否则会配置不成功的。

首先右击“我的电脑”-属性-更改设置。

1)点击 更改设置

2)点击更改

tomcat 调整jvm参数(ArcGISEnterprise部署之二JAVA)(19)

3)设置计算机名,输入自己习惯的计算机名,然后点击其他

tomcat 调整jvm参数(ArcGISEnterprise部署之二JAVA)(20)

4)设置 DNS 后缀,输入自己习惯的dns后缀

tomcat 调整jvm参数(ArcGISEnterprise部署之二JAVA)(21)

5)一路点击确定按钮,完成对计算机名的更改,重启电脑后生效。

3.2开启https

3.2.1生成数字证书

1)在java jdk的安装目录下,进入到bin文件夹,按住shift后鼠标右击打开命令行窗口。

tomcat 调整jvm参数(ArcGISEnterprise部署之二JAVA)(22)

tomcat 调整jvm参数(ArcGISEnterprise部署之二JAVA)(23)

2)生成CA签名证书keystore

在命令窗口中输入下面命令,然后回车:

keytool -genkey -alias your_alias -keyalg RSA -keystore your_keystore.jks -validity 3600 -storepass 123456

其中,your_alias表示证书的别名,改成自己的别名就可以;your_keystore.jks表示证书文件的名称,改成自己的就可以;123456代表证书的密码,这个后面要用到,改成自己能记住的密码。输入参数:

tomcat 调整jvm参数(ArcGISEnterprise部署之二JAVA)(24)

参数输入后,输入y回车。生成的证书文件会保存在jdk的bin目录下,将其拷贝出,放置到tomcat目录下的conf文件夹下。

tomcat 调整jvm参数(ArcGISEnterprise部署之二JAVA)(25)

3)生成cer证书

keytool -export -alias your_alias -file your_keystore.cer -keystore your_keystore.jks -storepass 123456

生成的cer证书文件会保存在jdk的bin目录下,双击运行,安装证书。

3.2.2配置tomcat

找到tomcat目录下的conf文件夹,用记事本打开里面的server.xml文件。

tomcat 调整jvm参数(ArcGISEnterprise部署之二JAVA)(26)

找到8080端口位置:

tomcat 调整jvm参数(ArcGISEnterprise部署之二JAVA)(27)

修改如下,将默认的8080端口,改为80端口:

tomcat 调整jvm参数(ArcGISEnterprise部署之二JAVA)(28)

将默认的8080端口,改为80端口

找到ssl设置的配置信息,默认是注释掉的。取消注释,端口由8443改为443,添加证书文件地址和秘钥口令。

tomcat 调整jvm参数(ArcGISEnterprise部署之二JAVA)(29)

重启tomcat,访问http://计算机全名/ https://计算机全名/,如果均能访问,说明https开启成功了。

tomcat 调整jvm参数(ArcGISEnterprise部署之二JAVA)(30)

http方式访问

tomcat 调整jvm参数(ArcGISEnterprise部署之二JAVA)(31)

https访问会提示安全性,点击高级按钮,选择继续访问

tomcat 调整jvm参数(ArcGISEnterprise部署之二JAVA)(32)

tomcat 调整jvm参数(ArcGISEnterprise部署之二JAVA)(33)

出现tomcat页面,说明https开启成功了

3.3server.xml配置的参数(坑3)

tomcat的https开启,其实很简单,但是因为server.xml配置的参数问题,浪费了很多时间。在网上查到的https参数大多是这样的:

<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="bin/.keystore" keystorePass="t460pg"/>

但是启动后,tomcat一直报密码错误,无法开启443端口,查了很多资料,最后在tomcat官网,查到tomcat8和10的密码参数名称不是“keystorePass”,而是“certificateKeystorePassword”,真是无语~

tomcat 调整jvm参数(ArcGISEnterprise部署之二JAVA)(34)

最后附上tomcat官网对于开启https的帮助文档地址:https://tomcat.apache.org/tomcat-8.5-doc/ssl-howto.html

tomcat 调整jvm参数(ArcGISEnterprise部署之二JAVA)(35)

,