我使用了adopted openjdk8.0.252,安裝簡(jiǎn)便,只需添加2個(gè)環(huán)境變量(JAVA_HOME,JRE_HOME)即可。
我的安裝路徑:
C:\SDKs\adoptopen-jdk8.0.252
所以環(huán)境變量:
環(huán)境變量名 | 值 |
---|---|
JAVA_HOME | C:\SDKs\adoptopen-jdk8.0.252\ |
JRE_HOME | C:\SDKs\adoptopen-jdk8.0.252\jre |
選擇的理由是嘗鮮,看看部署起來(lái)和tomcat有什么區(qū)別,雖然不是后端開(kāi)發(fā)出身,不過(guò)喜歡體驗(yàn)新組合新事物。
2.16的geoserver預(yù)編譯包用的都是jetty了,就是下載的那個(gè)帶bin字樣的zip包。
安裝路徑:C:\WebServers\jetty-distribution-9.4.28.v20200408
默認(rèn)端口是8080,我打算改成6700
打開(kāi)安裝路徑下的start.ini
找到注釋行:
# jetty.http.port=8080
解開(kāi)注釋,修改端口:
jetty.http.port=6700
不想每次都雙擊start.jar文件,Windows服務(wù)是一個(gè)不錯(cuò)的選擇。
到github上下載一個(gè)叫Winsw
的小工具,倉(cāng)庫(kù)地址:
https://github.com/winsw/winsw
到release頁(yè)面下載合適的版本即可,把下載到的exe程序放到安裝路徑下,創(chuàng)建與exe文件名一樣的xml文件:
<!-- 假設(shè)exe文件名被我改成winsw.exe,那么這個(gè)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都可以自己寫,只要你認(rèn)得就可以,id要唯一。
executable是可執(zhí)行程序,arguments是可執(zhí)行程序傳入的參數(shù),這里就是說(shuō)用java.exe程序執(zhí)行參數(shù)-jar start.jar
。
當(dāng)然,如果沒(méi)有JAVA_HOME
配置環(huán)境變量,那么就要寫全java程序的絕對(duì)路徑了。因?yàn)檫@個(gè)xml文件和start.jar同級(jí),start.jar的路徑就不需要絕對(duì)路徑了。
然后打開(kāi)cmd,定位到安裝目錄下,執(zhí)行下列命令:
winsw.exe install
就能安裝成Windows服務(wù)了:
這一步很簡(jiǎn)單,下載stable版本的geoserver-war包,放到j(luò)etty安裝目錄下的webapps目錄下,重啟jetty服務(wù),過(guò)一會(huì)兒,訪問(wèn)這個(gè)路徑就可以了:
http://localhost:6700/geoserver
jetty9有個(gè)和tomcat9不太一樣的地方,就是war包不會(huì)解壓到webapps下,會(huì)解壓到一個(gè)系統(tǒng)臨時(shí)目錄去。
這對(duì)于要增加geoserver插件、修改geoserver配置的任務(wù)來(lái)說(shuō),有點(diǎn)不對(duì)勁。
查了查資料,jetty和tomcat對(duì)war包的處理方式并不一樣。
jetty中處理war包解壓的代碼是:org.eclipse.jetty.util.resource.JarResource。使用JarInputStream來(lái)讀取war文件,JarInputStream是首先處理可選的META-INF/MANIFEST.MF文件,也就是說(shuō)getNextJarEntry方法不可能處理META-INF/MANIFEST.MF文件了,因此jetty會(huì)在處理完所有的JarEntry后,自己處理META-INF/MANIFEST.MF文件。但是,這樣做的后果就是,不能設(shè)置解壓出來(lái)的META-INF/MANIFEST.MF文件的最后修改時(shí)間。
tomcat中處理war包解壓的代碼:org.apache.catalina.startup.ExpandWar。使用JarFile來(lái)讀取war文件,這樣可以獲得war中所有的JarEntry,不需要自己去處理META-INF/MANIFEST.MF文件。
顯然,tomcat的做法更合理一些,其保證了解壓出來(lái)的文件具有和war中文件一樣的最后修改時(shí)間。
在jetty安裝目錄下創(chuàng)建work
文件夾,重啟jetty后就能看到war包解壓的文件了。
點(diǎn)進(jìn)去就能找到WEB-INF/web.xml
文件了,也能加jar包擴(kuò)展geoserver了。
跨域很好解決,把WEB-INF/web.xml
內(nèi)有關(guān)的配置解開(kāi)注釋即可,與tomcat配置法相同,不再贅述(需要添加額外的jar包請(qǐng)自己下載)。
打開(kāi)WEB-INF/web.xml
后,添加一項(xiàng):
重啟后,GWC的緩存路徑就重新定向了,媽媽再也不用擔(dān)心我的webapp越來(lái)越肥。
GEOSERVER_DATADIR也一樣。
版權(quán)所有,自主研究,轉(zhuǎn)載請(qǐng)?jiān)u論或私信告知。 https://www.cnblogs.com/onsummer/p/12940750.html
更多GIS運(yùn)維、開(kāi)發(fā)博客見(jiàn)小專欄:https://xiaozhuanlan.com/gishome
聯(lián)系客服