Geoserver发布WMS服务出错分析

使用Geoserver发布一个空间表,在图层预览的过程中没有任何问题,但是当我根据这个空间表传创建视图再发布wms服务,访问时就会报错,错误信息如下:

Caused by: java.sql.SQLException: ORA-29902: 执行 ODCIIndexStart() 例行程序中出
错
ORA-13208: 对运算符 [window SRID does not match layer SRID] 求值时出现内部错误
ORA-06512: 在 "MDSYS.SDO_INDEX_METHOD_10I", line 333

        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java
:112)
        at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
        at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
        at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:743)
        at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.
java:216)
        at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedSta
tement.java:955)
        at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStateme
nt.java:1060)
        at oracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe(T4CPrepa
redStatement.java:839)
        at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStateme
nt.java:1132)
        at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePrep
aredStatement.java:3316)
        at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePrepare
dStatement.java:3361)
        at org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(Dele
gatingPreparedStatement.java:96)
        at org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(Dele
gatingPreparedStatement.java:96)
        at org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(Dele
gatingPreparedStatement.java:96)
        at org.geotools.jdbc.JDBCFeatureReader.<init>(JDBCFeatureReader.java:167
)
        at org.geotools.jdbc.JDBCFeatureSource.getReaderInternal(JDBCFeatureSour
ce.java:599)
        ... 117 more
05 十二月 08:55:39 ERROR [geoserver.ows] -

  根据错误信息,是服务访问的srid和数据索引的srid不匹配导致,可以猜想,在某一环节出现问题,明明是同一份数据。经过多方面的验证发现,在oracle spatial空间元表里没有这个视图的记录,难道是这个问题?也就是说在元表中创建一条记录,就会成功?ok,尝试一下:

insert into user_sdo_geom_metadata values
  (‘V_REGION_MAPNO_R‘,
   ‘SHAPE‘,sdo_dim_array(sdo_dim_element(‘X‘, -180, 180, 0.5),
                sdo_dim_element(‘Y‘, -90, 90, 0.5)
                ),4326)

  更新了以后,再次预览wms图层,发现还是上面的错误,难道不是这样的,但是想想不可能有其他原因,于是将geoserver重启一下,一切OK!如图:

  

  有时重启就是那么任性!【把电脑重启能解决百分之九十的问题】

时间: 2024-10-12 14:20:47

Geoserver发布WMS服务出错分析的相关文章

geoserver发布地图服务WMTS

WMTS: 切片地图web服务(OpenGIS Web Map Tile Service) WMTS提供了一种采用预定义图块方法发布数字地图服务的标准化解决方案.WMTS弥补了WMS不能提供分块地图的不足.WMS针对提供可定制地图的服务,是一个动态数据或用户定制地图(需结合SLD标准)的理想解决办法.WMTS牺牲了提供定制地图的灵活性,代之以通过提供静态数据(基础地图)来增强伸缩性,这些静态数据的范围框和比例尺被限定在各个图块内.这些固定的图块集使得对WMTS服务的实现可以使用一个仅简单返回已有

GeoServer发布地图服务

最近要利用GIS服务器软件发布一些地图服务,商业的软件(比如ArcGIS Server肯定是用不起的),最后在开源GIS软件GeoServer和MapServer中选择了GeoServer. 下面简单说说如果使用,给初始GeoServer的朋友一点点帮助!愿他们不走我走过的弯路,哈哈! 1 安装GeoServer 首先,进入GeoServer官网下载安装包点击进入下载,现在最新的版本是2.7.1,GeoServer提供了针对操作系统专门的版本,但是我喜欢使用免安装的版本,即一个打包好的war包(

最短路径规划中创建基于geoserver的wms服务

上篇文章写了求任意两点间最短路径的sql函数,这篇文章讲一下如何把上面介绍的子功能整合到系统中去. 1.geoserver登录 首先单击geoserver安装路径下的start Geoserver 待geoserver启动后,在浏览器中输入,http://localhost:8080/geoserver/web/ 输入用户名密码登录geoserver 2.创建工作区 单击左侧工作区,如下图所示: 会进入新建工作区页面,单击"添加新的工作区",如下图所示 在弹出的工作区设置中输入新工作区

创建了一个基于最短路径规划geoserver的wms服务

两点之间的文章书面请求随机最短路径sql功能,这篇文章是关于如何将上述到系统中的子功能. 1.geoserver登录 首先单击geoserver安装路径下的start Geoserver 待geoserver启动后,在浏览器中输入,http://localhost:8080/geoserver/web/ 输入usernamepassword登录geoserver 2.创建工作区 单击左側工作区,例如以下图所看到的: 会进入新建工作区页面,单击"加入新的工作区",例如以下图所看到的 在弹

geoserver 通过代码实现发布地图服务

GeoServer:代码实现批量发布地图服务 利用GeoServer发布WCS服务,那么如果我有很多数据需要进行发布,这样利用GeoServer提供的UI界面进行操作显然很不显示.那能不能利用GeoServer提供的API进行操作呢?GeoServer提供了REST API方便我们利用代码进行操作.用户手册中提供了如下语言或方法进行操作:cURL,PHP,Python,Java和Ruby. Java篇 我先使用了Java语言的geoserver manager.在Eclipse新建一个Maven

GeoServer:代码实现批量发布地图服务

上文<GeoServer发布地图服务 >介绍了如何利用GeoServer发布WCS服务,那么如果我有很多数据需要进行发布,这样利用GeoServer提供的UI界面进行操作显然很不显示.那能不能利用GeoServer提供的API进行操作呢?GeoServer提供了REST API方便我们利用代码进行操作.用户手册中提供了如下语言或方法进行操作:cURL,PHP,Python,Java和Ruby. 可惜的是除了cURL有详细的文档之外,其它语言参考文档很少.不得不说开源软件就是没有很好的技术支持,

OGC——WMS服务

一.引言 一直用arcgis javascript的二次开发,经常使用它的一些服务WMS.WMTS.WFS.MapService等,并没有深入了解这些服务内部机制,直到最近学习了geoserver,由于毕竟它是开源的要遵循行业老大OGC制定的标准,这样通用性比较强一些,所以发的服务基本都是WMS.WTMS.WFS.WCS== so了解这些东西是必须的了,后悔当时没有跟遥感院第一美男老师好好学啊,现在开始看着还是懵逼状态,硬着头皮看完梳理了一下== 二.WMS服务发布 这里可以用geoserver

使用GeoServer发布shp数据为WMS服务和WFS服务(图文教程)

使用GeoServer发布shp数据为WMS服务和WFS服务 使用GeoServer发布shp数据为WMS服务和WFS服务 1安装GeoServer 2使用GeoServer上传数据 3使用GeoServer发布数据为WMS和WFS 看完本教程,你将学会安装Geoserver,然后将shp图发布为WMS和WFS服务,在后续文章中,将讲到使用GeoServer发布PostGIS空间数据库中的数据,以及在Mapbox,Openlayers中如何调用WFS和WMS服务. 1安装GeoServer 我安

World Wind Java开发之十三——加载Geoserver发布的WMS服务(转)

这篇是转载的平常心博客,原地址见:http://www.v5cn.cn/?p=171 1.WMSTiledImageLayer类说明 一个WMSTiledImageLayer类对象只能对应一个WMS发布的服务图层,使用WMS服务时需要使用到WMS元数据描述类WMSCapabilities对象,我们使用WMSCapabilites类的静态方法retrieve来获得它的对象.WMSCapabilites对象可以包含WMS服务中所以的图层和图层样式,我们通过把需要显示的图层名称保存到AVList对象中