GeoServer启动错误Error on startup, “java.lang.NoSuchFieldError KEY_CACHED_TILE_RECYCLING_ENABLED”

 近日偶的元数据服务软件在某省局站点启动时没有成功启动地图服务,之前从未见过此等现象。

错误表现:

org.springframework.beans.FatalBeanException: Could not instantiate class

[org.vfny.geoserver.global.GeoServer]; constructor threw exception; nested

exception is java.lang.NoSuchFieldError: KEY_CACHED_TILE_RECYCLING_ENABLED

org.springframework.beans.FatalBeanException: Could not instantiate class

[org.vfny.geoserver.global.GeoServer]; constructor threw exception; nested

exception is java.lang.NoSuchFieldError: KEY_CACHED_TILE_RECYCLING_ENABLED

java.lang.NoSuchFieldError: KEY_CACHED_TILE_RECYCLING_ENABLED

        at org.vfny.geoserver.global.GeoServer.initJAI(GeoServer.java:719)

        at org.vfny.geoserver.global.GeoServer.load(GeoServer.java:494)

        at org.vfny.geoserver.global.GeoServer.<init>(GeoServer.java:129)

仔细询问后,得知之前很好。只是安装了另一个基于Java的系统后就出现问题了。

搜索GeoServer网站有TroubleShooting部分内容,幸好此处有略介绍。

 

这主要是因为使用JAI库版本冲突引起,gs使用的是jai1.1.2,出现引错误可能是classpath里面的JAI版本1.1或者更老。

通常有两个原因会导致这个情况:

1.另外的软件可能把JAI包安装到jre/lib/ext下面,该包会覆盖其它其它所有应用程序的包。

2.Web容器共享库里面有个老版本的JAI库,通常会放到Classpath里面去。

第一种情况可以从JAI网站上去下载最新的稳定版来覆盖旧版本即可。

第二种情况,从网站上下载纯java版本的jai安装包,来覆盖共享库里的。或者找寻一种方法使得web容器加载jar包比共享库的早。

回头跟省局的同仁再查查。

转载自:https://blog.csdn.net/zhuhuazha/article/details/3229040

You may also like...

退出移动版