ArcSDE 10.2 SDK for Java实现直连
来源:互联网 发布:知乎 曹明伦 编辑:程序博客网 时间:2024/05/08 16:25
最近有不少用户咨询到ArcSDE SDK是否可以实现直连,这个当然没有问题,从ArcGIS支持直连开始,相关开发都是支持直连的,今天特此测试一下,来验证一下其实ArcGIS直连只是连接方式的参数以及多安装了数据库客户端,其他代码是无需修改的。
测试环境:Windows Server 2008 R2 ,ArcSDE 10.2 SDK for Java,Eclipse 64Bit Oracle11.2.0.1 (包含ArcSDE 10.2地理数据库),但是没有安装ArcSDE10.2应用程序。
因为ArcSDE10.2 SDK只有64Bit程序,所以如果需要安装Oracle客户端(直连)64Bit应用程序,Eclipse 64Bit应用程序。
具体的安装步骤可以参考:http://blog.csdn.net/linghe301/article/details/8058806
在环境部署过程中我还遇到了一些情况:
1:在执行程序是,控制台报如下信息no sdejavautil in java.library.path
Exception in thread "main" java.lang.UnsatisfiedLinkError: no sdejavautil in java.library.pathat java.lang.ClassLoader.loadLibrary(Unknown Source)at java.lang.Runtime.loadLibrary0(Unknown Source)at java.lang.System.loadLibrary(Unknown Source)at com.esri.sde.sdk.client.JGsrvr.<clinit>(Unknown Source)at com.esri.sde.sdk.client.SeConnection.x(Unknown Source)at com.esri.sde.sdk.client.SeConnection.<init>(Unknown Source)at arcgis.sde.test.test.getConn(test.java:22)at arcgis.sde.test.test.main(test.java:38)
解决方法:将ArcSDE SDK的bin文件夹添加到环境变量中,因为sdejavautil文件就在该文件中
2:如果你当前运行环境并没有按照ArcSDE Server软件,在执行应用程序会报如下错误:SE_SDEHOME_NOT_SET (-95)——The SDEHOME variable is not set and is needed for this operation.
从这个错误信息很容易得知是什么问题,环境变量没有添加
------------------------------------------------------------------
版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!
建议看到转载,请直接访问正版链接获得最新的ArcGIS技术文章
Blog: http://blog.csdn.net/linghe301
------------------------------------------------------------------
1:关于Server参数写法
在ArcGIS 10.0之前,用户还是可以看到输入Server界面的,而且如果需要直连的话,该输入框里面的内容可以不填写,但是ArcGIS10.1之后,就看不到该界面了,所以ArcSDE SDK开发者可能对这个有所考虑,该怎么写?
答案:该参数可以随便写,只要不为空即可。为什么呢?
我们使用反编译软件来查看
if ((paramString1 == null) || (paramString1.length() == 0) || (paramString1.length() >= 32) || ((paramString3 != null) && (paramString3.length() >= 32)) || (paramString2 == null) || (paramString2.length() == 0) || (paramString2.length() >= 32) || (paramString4 == null) || (paramString4.length() == 0) || (paramString5 == null) || (paramString5.length() == 0) || (paramString5.length() >= 32)) throw new SeException(this.o, -66, "");如果第一个参数为null、为空、长度大于32都会报-66无效参数的错误,所以不管是直连还是服务连接,该参数都必须填写,特别是直连,虽然该参数没有意义,但是鉴于一开始的逻辑限制,我们必须填写点内容。
2:Service选项
在ArcGIS 10.0之前,我们习惯于输入sde:oracle11g:netservicename,在ArcGIS10.1之后,我们只需要输入netservicename,但是在SDK开发过程中,需要用户将sde:oracle11g内容添加上。
而且如果你在service输入sde:oracle11g,那么你需要在密码输入项输入:password@netservicename
相关参数代码如下
package arcgis.sde.test;import com.esri.sde.sdk.client.SeConnection;import com.esri.sde.sdk.client.SeException;import com.esri.sde.sdk.client.SeRelease;public class test {private static SeConnection conn = null; private static String server = "192.168.220.132"; //如果输入sde:oracle11g private static String instance = "sde:oracle11g:orcl"; private static String database = ""; private static String username = "sde"; //密码需要输入sde@orcl private static String password = "sde"; //获得ArcSDE连接 private static SeConnection getConn() { if (conn == null) { try { conn = new SeConnection(server, instance, database, username, password); } catch (SeException ex) { ex.printStackTrace(); } } return conn; } /** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubSeConnection conn =getConn(); SeRelease release=conn.getRelease(); System.out.println(release.getBugFix()); System.out.println(release.getDesc()); System.out.println(release.getRelease()); System.out.println(release.getMajor()); System.out.println(release.getMinor()); }}
欢迎添加微信公众号:ArcGIS技术分享(arcgis_share),直接回复1就可以在移动端获取最新技术文章。
- ArcSDE 10.2 SDK for Java实现直连
- ArcSDE直连出错
- ArcIMS 9.2 直连 ArcSDE for Oracle 10g (转载)
- ArcSDE geodatabase直连原理----flyingme
- arcsde 直连方式输入参数
- ARCSDE直连与服务连接架构
- arcsde直连的一些操作
- ArcSDE SDK For Java二次开发介绍、示例
- Java直连Access
- Java JDBC直连
- sparkstreaming直连kafka Java实现 自己管理offset
- java直连数据库小结
- ArcSDE数据库连接(直连、服务连)与GT_Geometry存储配置图解
- ArcSDE数据库连接(直连、服务连)与GT_Geometry存储配置图解
- ArcSDE数据库连接(直连、服务连)与GT_Geometry存储配置图解
- ArcSDE数据库连接(直连、服务连)与GT_Geometry存储配置图解
- ArcSDE数据库连接(直连、服务连)与GT_Geometry存储配置图解
- ArcSDE数据库连接(直连、服务连)与GT_Geometry存储配置图解
- oracle 11g 自动调优
- Git Review提交代码失败的解决方法
- Oracle查询其他用户的表时如何不用加表用户名
- AVL树C实现
- 我对USB的认识
- ArcSDE 10.2 SDK for Java实现直连
- API监控-免费体验有奖测试
- Why ARP attrak can result in network interruption
- QTP取弹出对话框中文字信息方法
- 利用dispatch_once创建单例
- oracle中存储过程的参数定义技术要点
- hdu 4982 Goffi and Squary Partition (枚举)
- coreseek/sphinx CentOS6.4下安装
- QML类型说明-ColorDialog