Linux geoserver調(diào)優(yōu)之Java圖像處理優(yōu)化(原生JAI和ImageIO和java默認(rèn)庫相互轉(zhuǎn)換)
注:geoserver版本Linuxgeoserver2.15.0安裝:bin方式安裝(內(nèi)嵌jetty,非war安裝)
一。geoserver調(diào)優(yōu)之Java圖像處理優(yōu)化
1.原生JAI和ImageIO
GeoServer的圖像處理功能使用了Java的JAI和JAIImageIO功能,但由于Java的JAI和JAIImageIO庫默認(rèn)是Java實(shí)現(xiàn),若將其換為原生庫可顯著提高圖像處理速度。注意,在windows下只有32位Java環(huán)境才可用,64位Java環(huán)境不可用原生庫。下載和拷貝原生庫文件的操作參考以下代碼:
cd/tmp wgethttp://download.java.net/media/jai/builds/release/1_1_3/jai-1_1_3-lib-linux-amd64.tar.gz wgethttp://download.java.net/media/jai-imageio/builds/release/1.1/jai_imageio-1_1-lib-linux-amd64.tar.gz
#解壓
gunzip-cjai-1_1_3-lib-linux-amd64.tar.gz|tarxf- gunzip-cjai_imageio-1_1-lib-linux-amd64.tar.gz|tarxf-
#把解壓之后的相關(guān)文件拷貝到j(luò)re目錄下(jdk安裝目錄)
#/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.x86_64指jdk安裝目錄,查看jdk安裝目錄
參考:http://gantiao.com.cn/post/18002178.html
cp/tmp/jai-1_1_3/lib/*.jar/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.x86_64/jre/lib/ext/ cp/tmp/jai-1_1_3/lib/*.so/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.x86_64/jre/lib/amd64/ cp/tmp/jai_imageio-1_1/lib/*.jar/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.x86_64/jre/lib/ext/ cp/tmp/jai_imageio-1_1/lib/*.so/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.x86_64/jre/lib/amd64/
2.重啟geoserver報錯geoserver啟動Couldnotinitializeclassjavax.media.jai.JAI
原因:jdk底下新加的jar包和geoserver的web-lib目錄下JAI的jar包沖突了https://blog.csdn.net/zhang88lei/article/details/6050424
3.解決:刪除$CATALINA_BASE/webapps/geoserver/WEB-INF/lib目錄下的jai_codec-1.1.3.jar;jai_core-1.1.3.jar;jai_imageio-1.1.jar三個文件
注:先備份后刪除
mkdir-p/tmp/geoserver/ cp/usr/local/geoserver-2.15.0/webapps/geoserver/WEB-INF/lib/jai*.jar/tmp/geoserver/ cd/usr/local/geoserver-2.15.0/webapps/geoserver/WEB-INF/lib ls lsjai* rm-f-rjai_codec-1.1.3.jar lsjai* rm-f-rjai_core-1.1.3.jar ls lsjai* rm-f-rjai_imageio-1.1.jar lsjai*
4.重啟geoserver
二。原生庫變回java庫
1.刪除jre下的原生jar包(核對是否是自己之前復(fù)制過去的那些jar包)
rm-f-r/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.x86_64/jre/lib/ext/jai_codec.jar rm-f-r/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.x86_64/jre/lib/ext/jai_core.jar rm-f-r/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.x86_64/jre/lib/ext/jai_imageio.jar rm-f-r/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.x86_64/jre/lib/ext/mlibwrapper_jai.jar rm-f-r/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.x86_64/jre/lib/ext/clibwrapper_jiio.jar
2.刪除jre下的原生so文件(核對是否是自己之前復(fù)制過去的那些文件)
rm-f-r/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.x86_64/jre/lib/amd64/libmlib_jai.so rm-f-r/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.x86_64/jre/lib/amd64/libclib_jiio.so
3.把之前刪除的/webapps/geoserver/WEB-INF/lib目錄下的jai_codec-1.1.3.jar;jai_core-1.1.3.jar;jai_imageio-1.1.jar三個文件還原
cp-r/tmp/geoserver/*.jar/usr/local/geoserver-2.15.0/webapps/geoserver/WEB-INF/lib/
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。