2012-06-13 25 views
10

Java için AWS SDK ile birlikte gelen DynamoDB örneğini çalıştırmaya çalışıyorum. Tutulma kullanarak yapıyorum ve aws-java-sdk-1.3.2.jar dosyasını projenin yapı yoluna ekledim. Elbette derleme iyi gidiyor, ancak NoClassDefFoundError adında bir çalışma zamanı istisnası alıyorum. Bunun, sınıfın derlemede olduğu ancak çalışma zamanında bulunamayacağı anlamına geldiğini biliyorum. Kavanoz dosyasını değişkenleri eklemeye çalıştım - yardımcı olmadı. Ayrıca kontrol ettim ve diğer projelerdeki diğer dış jar dosyalarını kullanmanın bir problemi yok. Her iki pencerede ve linux'ta aynı sorun.NoClassDefFoundError java için AWS SDK kullanarak bir program çalıştırırken

kimse yardım?

Teşekkürler, ben.

Yığın İzleme: AWS JAR kullanılan alet için fazladan birkaç kavanozları ihtiyacı var, ancak benzeri

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory 
    at com.amazonaws.services.dynamodb.AmazonDynamoDBClient.<clinit>(AmazonDynamoDBClient.java:62) 
    at AmazonDynamoDBSample.init(AmazonDynamoDBSample.java:62) 
    at AmazonDynamoDBSample.main(AmazonDynamoDBSample.java:67) 
+0

Yığın izinizi gönderin lütfen? –

+1

apache commons kütüphanesi jar dosyası eklediniz mi? Burada bulunabilir: http://commons.apache.org/logging/download_logging.cgi –

+1

Evet, ayrıca codec ve HTTP istemcisi. Tümü –

cevap

1

görünüyor (davanız günlük gibi) olmayan AWS öğeler.

"lib" dizini içeren bir dağıtılabilir dosyayı karşıdan yüklediyseniz, olasılıklar sadece Eclipse'i AWS ve muhtemelen "lib" dizinindeki tüm JAR'lar dahil olmak üzere tüm gerekli JAR'lar yerine AWS JAR kullanacak şekilde yapılandırmış olursunuz. Eğer "üçüncü taraf" adlı başka bir klasör bulacaksınız aws-java-sdk-1.3.2 klasörü içinde

+0

lib, aws-java-sdk-1.3.2-sources.jar dosyasını ve aws-java-sdk-1.3.2-javadoc.jar dosyasını ekledi. Onlar uygun değil mi? Ayrıca bir üçüncü parti denilen bir dizin var, bu bir commons-logging-1.1.1.jar içeriyordu ve aynı zamanda yapım yolunda da ... –

+0

Kaynakların ve javadoc kavanozlarının ihtiyacınız olan şey olmadığını tahmin etmekte haklısınız. eklemek. Üçüncü taraf commons-logging-1.1.1.jar dosyası aradığınız eksik sınıfı içerir. Bir yana, AWS kitaplığını "kaynak ekle" olarak yapılandırabilir ve ardından aws kitaplığına hata ayıklamak istiyorsanız "kaynaklar" JAR dosyasını bağlayabilirsiniz. –

+0

commons-logging-1.1.1.jar zaten oluşturma yolunun içinde. Ayrıca org/apache/commons/logging/LogFactory.class'i de kavanozun içinde elle buldum. JVM'nin bunu bulamayacağı herhangi bir sebep var mı? –

12

. Amazon SDK tarafından kullanılan tüm üçüncü taraf dosyalar Apache Common Logging dahil olmak üzere bu klasörün içinde yer almaktadır. Gerekli dosyaları AWS SDK jar dosyaları ile birlikte sınıf yolunuza eklemeniz gerekir.

+0

Bu sihir "üçüncü tarafa" bir web bağlantısı sağlayabilir misiniz? Kavanoz bağımlılığında böyle bir klasör yok. – Cherry

+1

Omg ... Uzun süredir bu kesin problemi çiziyorum ... Üçüncü Parti Kütüphaneleri ... – WernerCD

İlgili konular