我正在运行Oracle ArcSDE 9.2并使用GeoTools 8.5,但他们在GeoTools文档中所做的事情似乎不起作用。我有
Map<String, Object> params = new HashMap<String, Object>();
params.put( "dbtype", "arcsde" );
params.put( "server", "164.64.146.42" );
params.put( "port", "5151" );
params.put( "instance", "sde" );
params.put( "user", "sde_admin" );
params.put( "password", "whatever" );
DataStore dataStore;
String typeName;
try
{
dataStore = DataStoreFinder.getDataStore(params);
typeName = dataStore.getTypeNames()[0];
} catch (IOException e)
{
e.printStackTrace();
}
FeatureSource source = dataStore(typeName);
但是,在dataStore = dataStoreFinder.getDataStore(params)之后,dataStore始终为null,表示它没有连接。除非我尝试使用null的dataStore对象,否则我不会得到异常。而且我不希望它工作,因为它没有问我架构。当您使用GeoServer成功连接到同一个SDE地理数据库时,它会坚持使用模式参数,在我的例子中是“envq.nmenv.state.nm.us”。我会将它添加到服务器名称的某个地方吗?或者我错过了什么不能连接?我现在只想尝试连接只读,但最终我想将数据放入GeoTools。
答案 0 :(得分:1)
使用使用GeoTools库的软件uDig回答了我的问题。通过uDig从ArcSDE DataStore加载时,uDig会提示您知道以下jar的位置: jsde92_sdk.jar jpe92_sdk.jar icu4j_3_2.jar 它们不是通过在Eclipse中的pom.xml中添加gt-arcsde而自动通过Maven加载的,而是在文件名GeoServer内的ArcSDE数据存储扩展下与geoserver-2.2.2-arcsde-plugin.zip一起分发 将它们的位置添加到CLASSPATH或Eclipse中,转到Project-&gt; Properties-&gt; Java Build Path和Add External JAR ...并选择所有这三个。此时,上述代码将保持不变。