2014-10-05 2 views
0

내가 만드는 응용 프로그램에서 지리 라이브러리를 사용하려고합니다. 이 튜토리얼에서 설명하는 단계를 수행하여 테이블을 작성하고 테이블에 지오 포인 트를 삽입한다. 그러나이 줄에 도착했을 때GeoDataManager putPoint 메소드가 예외 발생

PutPointResult putPointResult = geoDataManager.putPoint(putPointRequest); 

예외가 있습니다.

Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/geometry/S2LatLng 
at com.amazonaws.geo.s2.internal.S2Manager.generateGeohash(S2Manager.java:116) 
at com.amazonaws.geo.dynamodb.internal.DynamoDBManager.putPoint(DynamoDBManager.java:123) 
at com.amazonaws.geo.GeoDataManager.putPoint(GeoDataManager.java:131) 
at geolibraryTest.GeoLibraryTest.main(GeoLibraryTest.java:72) 
Caused by: java.lang.ClassNotFoundException: com.google.common.geometry.S2LatLng 
at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 
... 4 more 

왜 내가이 문제를 이해할 수 있도록 도와 줄 수 있습니까?

답변

0

DynamoDB GEO은 s2-geometry jar를 클래스 경로에 넣지 않습니다.

당신은 메이븐을 사용하고 있습니까? 또는 스스로 클래스 패스를 만들었습니까?

+0

나는 혼자서 클래스 패스를 빌드한다. s2-geometry jar를 클래스 경로에 추가했지만 이제는이 예외가 발생합니다. 스레드 "main"의 예외 java.lang.NoClassDefFoundError : com/google/common/base/Preconditions – user3010617

+0

빌드하는 것이 좋습니다. 너 자신의 클래스 패스. 종속성을 관리하려면 maven/ivy를 사용해야합니다. 누락 된 수업은 Google Guava에서 제공합니다 (https://code.google.com/p/guava-libraries/wiki/Release18). –