2016-09-22 200 views
1

使用此包 - AWS-Java的SDK-OSGi的1.11.26.jar在OSGI服務器java.lang.NoClassDefFoundError:無法初始化類com.amazonaws.ClientConfiguration

下面的錯誤,這是在執行時被拋出AmazonS3 s3 = new AmazonS3Client(credentials);

java.lang.NoClassDefFoundError: Could not initialize class com.amazonaws.ClientConfiguration 
     at com.amazonaws.ClientConfigurationFactory.getDefaultConfig(ClientConfigurationFactory.java:46) 
     at com.amazonaws.ClientConfigurationFactory.getConfig(ClientConfigurationFactory.java:36) 
     at com.amazonaws.services.s3.AmazonS3Client.<init>(AmazonS3Client.java:440) 

任何解決方案來解決這個問題?

回答

1

感謝所有的建議

AWS-Java的SDK-OSGi的1.11.26.jar的ClientConfiguration取決於傑克遜databind.jar 傑克遜databind.jar的是依賴於傑克遜核心。 jar 所以無法初始化ClientConfiguration。

增加進口,包裝在傑克遜 - 數據綁定 - osgi.jar的清單從傑克遜核心osgi.jar進口所有

然後問題解決了

注意:所有依賴jar轉換爲OSGI罐子和部署

+0

你是怎麼做到的?我想用gradle做類似的事情。 – OPTIMUS

0

那麼,請確保aws-java-sdk-osgi-1.11.26.jar存在於你的類路徑中,因爲類本身存在於jar中。 我剛剛下載了這個jar。

aws-java-sdk-osgi-1.11.26.jar

0

我猜你缺少你捆綁的進口包裝聲明清單。不知道你是如何構建你的包,但我會建議使用某種形式的bnd。例如,我通常使用引擎蓋下使用bnd的maven-bundle-plugin。 Bnd能夠在大多數情況下自動計算出進口量。

+0

\t \t \t \t \t \t \t \t \t org.apache.felix \t \t \t \t 行家束-插件 \t \t \t \t \t \t \t \t <結構> \t \t \t \t \t \t \t \t \t \t <說明> \t \t \t \t \t \t ... \t \t \t \t \t \t <進口包裝> \t \t \t \t \t \t \t com.amazonaws。*; \t \t \t \t \t \t <服務的組件> * \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t

+0

燦您嘗試刪除Import-Package語句。在大多數賽事中,默認應該做正確的事情。你的設置將覆蓋所有必要軟件包的默認選擇..也許缺少一個。另一方面,至少com.amazonaws的導入應該與你的配置一起出現。 –

相關問題