我正在运行 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,表示它没有连接。除非我尝试使用为空的 dataStore 对象,否则我不会遇到异常。而且我不希望它起作用,因为它不要求我提供模式。当您使用 GeoServer 成功连接到同一个 SDE 地理数据库时,它坚持使用模式参数,在我的例子中是“envq.nmenv.state.nm.us”。我会将其添加到某处的服务器名称中吗?或者我错过了什么不连接?我现在只是尝试以只读方式连接,但最终我想使用 GeoTools 将数据放入。