环境
- 操作系统:CentOS 7
- JDK版本:1.8
- Tomcat版本:8.x
- GeoServer版本:Stable 2.21.0
问题
CentOS 7系统通过geoserver官方提供的war包形式部署,tomcat启动正常,确定tomcat没问题,将下载的geoserver.war包放置tomcat的webapps路径下,tomcat启动状态会自动部署,通过启动log查看报错:
代码语言:javascript复制java.lang.NoClassDefFoundError: Could not initialize class javax.media.jai.JAI
tomcat在linux上启动时查看控制台命令
代码语言:javascript复制tomcat/bin/start.sh && tail -f tomcat/logs/catalina.out
解决
1.下载JAI Java Advanced Imaging (JAI) 是Oracle开发的用于高级图像处理的库。 GeoServer无需它即可运行, 因为它随附了纯Java版本的JAI。 安装JAI可以大大提高处理图像时的性能, 即栅格格式数据。 如果您不打算使用空间栅格数据, 当您索要地图时,GeoServer可以使用图像格式,例如, 在WMS GetMap 请求中,因此将它放在生产站点上很值得 通过wget命令下载
代码语言:javascript复制wget http://download.java.net/media/jai/builds/release/1_1_3/jai-1_1_3-lib-linux-amd64-jre.bin
2.将文件复制到安装JRE的文件夹中,然后运行它:
代码语言:javascript复制cp jai-1_1_3-lib-linux-amd64-jre.bin /jre1.8.0/.(改成你的jre安装路径)
切入到你的jre路径下
代码语言:javascript复制cd /usr/lib/jvm/jre1.8.0/(改成你的jre安装路径)
运行
代码语言:javascript复制sh jai-1_1_3-lib-linux-amd64-jre.bin
然后会出现类似用户许可协议,看完就行了,按键盘回车(Enter) 出现下面的Done代表已经完成
代码语言:javascript复制 inflating: COPYRIGHT-jai.txt
inflating: DISTRIBUTIONREADME-jai.txt
inflating: LICENSE-jai.txt
inflating: THIRDPARTYLICENSEREADME-jai.txt
inflating: UNINSTALL-jai
inflating: lib/amd64/libmlib_jai.so
inflating: lib/ext/jai_core.jar
inflating: lib/ext/jai_codec.jar
inflating: lib/ext/mlibwrapper_jai.jar
Done
安装完毕之后如果还是报错,再尝试安装下面的jai_imageio
代码语言:javascript复制wget http://download.java.net/media/jai-imageio/builds/ release/1.1/jai_imageio-1_1-lib-linux-amd64-jre.bin
下载之后操作和上面的完全相同 也可以直接下载该jar包,jai_imageio-1.1.jar点击下载,然后将下载的jar包放到安装jdk路径下,jdk1.8.0(前面这里换成你自己的路径,后面不用变)/jre/lib/ext的下面
代码语言:javascript复制jdk1.8.0(前面这里换成你自己的路径,后面不用变)/jre/lib/ext