1 JDK的选择

我使用了adopted openjdk8.0.252,安装简便,只需添加2个环境变量(JAVA_HOME,JRE_HOME)即可。

我的安装路径:

C:\SDKs\adoptopen-jdk8.0.252

所以环境变量:

环境变量名
JAVA_HOME C:\SDKs\adoptopen-jdk8.0.252\
JRE_HOME C:\SDKs\adoptopen-jdk8.0.252\jre

2 Jetty 9

选择的理由是尝鲜,看看部署起来和tomcat有什么区别,虽然不是后端开发出身,不过喜欢体验新组合新事物。

2.16的geoserver预编译包用的都是jetty了,就是下载的那个带bin字样的zip包。

安装路径:C:\WebServers\jetty-distribution-9.4.28.v20200408

修改端口

默认端口是8080,我打算改成6700

打开安装路径下的start.ini

找到注释行:

# jetty.http.port=8080

解开注释,修改端口:

jetty.http.port=6700

作为Windows服务启动

不想每次都双击start.jar文件,Windows服务是一个不错的选择。

到github上下载一个叫Winsw的小工具,仓库地址:

https://github.com/winsw/winsw

到release页面下载合适的版本即可,把下载到的exe程序放到安装路径下,创建与exe文件名一样的xml文件:

<!-- 假设exe文件名被我改成winsw.exe,那么这个xml的文件名就是winsw.xml -->
<service>
<id>Jetty9</id>
<name>Apache Jetty 9</name>
<description>你的描述</description>
<executable>java</executable>
<arguments>-jar start.jar</arguments>
</service>

id、name、description都可以自己写,只要你认得就可以,id要唯一。

executable是可执行程序,arguments是可执行程序传入的参数,这里就是说用java.exe程序执行参数-jar start.jar

当然,如果没有JAVA_HOME配置环境变量,那么就要写全java程序的绝对路径了。因为这个xml文件和start.jar同级,start.jar的路径就不需要绝对路径了。

然后打开cmd,定位到安装目录下,执行下列命令:

winsw.exe install

就能安装成Windows服务了:

3 war包安装geoserver

这一步很简单,下载stable版本的geoserver-war包,放到jetty安装目录下的webapps目录下,重启jetty服务,过一会儿,访问这个路径就可以了:

http://localhost:6700/geoserver

4 跨域和gwc、默认数据路径配置

jetty9有个和tomcat9不太一样的地方,就是war包不会解压到webapps下,会解压到一个系统临时目录去。

这对于要增加geoserver插件、修改geoserver配置的任务来说,有点不对劲。

查了查资料,jetty和tomcat对war包的处理方式并不一样。

引用资料

jetty中处理war包解压的代码是:org.eclipse.jetty.util.resource.JarResource。使用JarInputStream来读取war文件,JarInputStream是首先处理可选的META-INF/MANIFEST.MF文件,也就是说getNextJarEntry方法不可能处理META-INF/MANIFEST.MF文件了,因此jetty会在处理完所有的JarEntry后,自己处理META-INF/MANIFEST.MF文件。但是,这样做的后果就是,不能设置解压出来的META-INF/MANIFEST.MF文件的最后修改时间。

tomcat中处理war包解压的代码:org.apache.catalina.startup.ExpandWar。使用JarFile来读取war文件,这样可以获得war中所有的JarEntry,不需要自己去处理META-INF/MANIFEST.MF文件。

显然,tomcat的做法更合理一些,其保证了解压出来的文件具有和war中文件一样的最后修改时间。

解压到jetty安装目录

在jetty安装目录下创建work文件夹,重启jetty后就能看到war包解压的文件了。

点进去就能找到WEB-INF/web.xml文件了,也能加jar包扩展geoserver了。

跨域很好解决,把WEB-INF/web.xml内有关的配置解开注释即可,与tomcat配置法相同,不再赘述(需要添加额外的jar包请自己下载)。

gwc缓存路径设置

打开WEB-INF/web.xml后,添加一项:

重启后,GWC的缓存路径就重新定向了,妈妈再也不用担心我的webapp越来越肥。

GEOSERVER_DATADIR也一样。

版权所有,自主研究,转载请评论或私信告知。 https://www.cnblogs.com/onsummer/p/12940750.html

更多GIS运维、开发博客见小专栏:https://xiaozhuanlan.com/gishome

随机推荐

  1. html5手机端的点击弹出侧边滑动菜单代码

    效果预览:http://hovertree.com/texiao/html5/19/ 本效果适用于移动设备,可以使用手机等浏览效果. 源码下载:http://hovertree.com/h/bjaf/ ...

  2. Boundary Representations

    用所有属于boundary的点来表示boundary, 有两个主要的缺点, 一是数据量大, 二是对噪声敏感. 用boundary的一些representation而非精确的boundary本身来表示b ...

  3. 【原创】CDM添加新磁盘,然后负载

    hdfs快占满了,所以为节点中添加新的磁盘(这块是个教训,以后用新的节点时,磁盘需要一次性插满,省得后续再添加磁盘了) 注意: 添加磁盘时,不仅仅datanode在配置时添加节点,nodemanage ...

  4. ng-form

    form提供的属性都是用来表示表单的验证状态的,包括:$pristine(表单没有填写记录).$dirty(表单有填写记录).$valid(通过验证).$invalid(未通过验证).$error(验 ...

  5. mybatis 报The content of elements must consist of well-formed character data or markup. 语法格式错误

    最近在写sql的时候 同时使用到了 >= 和 <= 之前只使用一个的时候 没有什么问题,今天同时使用到了两个,结果xml出现了The content of elements must co ...

  6. uniGUI经验几则

    uniGUI经验几则 (2015-11-07 21:42:41) 转载▼ 标签: it 分类: uniGUI 1.uniTimer的妙用 很多时候,都会遇到在一个uniForm或者uniFrame加载 ...

  7. ASP:当 request.cookies 发生 Microsoft VBScript 运行时错误 (0x800A000D) 类型不匹配: &#39;[string:

    昨天当一个客户告诉我,登录后看不到图片的时候,我还不相信,因为我的浏览器测试发现一切正常. 通过QQ远程协助后,我才发现服务器端真的报错: Microsoft VBScript 运行时错误 (0x80 ...

  8. SeaJS入门教程系列之使用SeaJS(二)

    SeaJS入门教程系列之使用SeaJS(二) 作者: 字体:[增加 减小] 类型:转载 时间:2014-03-03我要评论 这篇文章主要介绍了SeaJS入门教程系列之使用SeaJS,着重介绍了SeaJ ...

  9. 【C++】Mandelbrot集绘制(生成ppm文件)

    曼德勃罗特集是人类有史以来做出的最奇异,最瑰丽的几何图形.曾被称为"上帝的指纹". 这个点集均出自公式:Zn+1=(Zn)^2+C.(此处Z.C均为复数)所有使得该公式无限迭代后的 ...

  10. VMWare开启DHCP和NAT服务(VMWare无法通过NAT上网以及和host主机通信的问题解决)

    最近在学习Hadoop,开始做一个集群.由于各个节点的IP地址需要保持不变,我决定在VMWare采用NAT的模式联网. 但是在安装Ubuntu系统的时候,提示我DHCP服务未开启. Your netw ...