2012-12-27 6 views
1

저는 Oracle ArcSDE 9.2를 사용하고 GeoTools 8.5를 사용하고 있습니다.하지만 GeoTools 워드 프로세서에서 말하는 내용은 효과가없는 것 같습니다. 데이터 저장소 = dataStoreFinder.getDataStore이 (PARAMS), 데이터 저장소는 항상 여전히 널 후 나는 연결하지 않은 나타내는, GeoTools로 ArcSDE에 어떻게 연결할 수 있습니까?

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); 

을 가지고 있지만. null 인 dataStore 객체를 사용하려고 시도하지 않으면 예외가 발생하지 않습니다. 그리고 그것이 스키마를 요구하지 않기 때문에 작동하지 않을 것이라고 생각합니다. GeoServer를 사용하여 동일한 SDE 지오 데이터베이스에 성공적으로 연결할 때 스키마 매개 변수 (내 경우에는 "envq.nmenv.state.nm.us")를 사용합니다. 어딘가에 서버 이름에 추가할까요? 또는 연결하지 않기 위해 내가 놓친 것은 무엇입니까? 지금은 읽기 전용으로 연결하려하지만 결국에는 GeoTools를 사용하여 데이터를 저장하려고합니다.

답변

1

GeoTools 라이브러리를 사용하는 uDig 소프트웨어를 사용하여 제 질문에 대한 답변을 얻었습니다. jsde92_sdk.jar 그들은 당신의 pom.xml에 GT-의 ArcSDE를 추가하여 Maven을 통해 자동으로로드되지 않습니다 icu4j_3_2.jar jpe92_sdk.jar : uDig를 통해 ArcSDE는 데이터 저장소에서로드 할 때, uDig은 다음 항아리의 위치를 ​​알고하라는 메시지 이클립스에서는 GeoServer으로 배포됩니다. geoserver-2.2.2-arcsde-plugin.zip CLASSPATH 또는 Eclipse에 위치를 추가하고 Project-> Properties-> Java Build Path 및 Add External JARs ...로 이동하여 세 가지를 모두 선택하십시오 . 그 시점에서 위의 코드는 변경되지 않고 작동합니다.

관련 문제