解决 GeoServer 2.8.1 无法发布 Oracle Spatial 表名带下划线的图层

        这几天在采用 OpenGIS 开发一个 项目,用的是 Oracle Spatial + GeoTools + +GeoServer + OpenLayers ,数据库用的是 Oracle 11g (11.2.0.1.0 - 64bit), 后来发现 用

GeoServer2.8.1 读取 Oracle Spatial 图层,发布成 服务时,遇到表名带下划线的情况总是发布不了的情况,后来几经调试发现是 oracle 驱动包引入的问题,所以在此记录一下,

以供他人所需。


    环境配置:

       geoserver 本身默认不带连接oracle 数据库的驱动包,所以我先从 网上下载了 geoserver-2.8.1-oracle-plugin 插件,解压后发现里面只有一个 gt-jdbc-oracle-14.1.jar 文件,后

来又从本地拷贝了一个 ojdbc 14.jar 文件一起拷贝到  E:\Program Files (x86)\GeoServer 2.8.1\webapps\geoserver\WEB-INF\lib 目录下,启动 geoserver 服务配置oracle 连接,

一切正常。


     问题说明:

             此时从 oracle 链接中选定发布 不带 下划线的 图层时没有问题,但是有下划线的表名却不行。


    解决办法:

            后来费劲周折在oracle 官网上发现 11 g版本对应的最新jar 包为 ojdbc6.jar ,于是把 ojdbc 14.jar 包 替换为 ojdbc 6.jar ,终于成功。



     同理 我用Geotools 封装的一个 空间数据查询的工程,也是把 项目里引入的 ojdb14.jar 包替换为 ojdbc 6.jar ,ok 解决。

     没替换之前,如果图层名为 People2004查询正常出结果 ,而图层名为 People_2004 时,则一直报   

   java.lang.NullPointerException: PropertyDescriptor is null - did you request a property that does not exist?

你可能感兴趣的:(java,oracle)