我對OSGI和KURA很新。自昨天開始,我正在處理一個問題,我不明白其原因。是否需要導入傳遞依賴關係作爲包到KURA
請告訴我,如果我的方式是錯誤的。
我在我的項目中使用dropbox-core-sdk
(版本3.0.0)。我已經下載了它的jar,並且我研究了它對jackson-core
(版本2.7.4)的依賴。我也下載了它的jar,並且我創建了一個包含dropbox-core-sdk.jar
和jackson-core.jar
的包。
首先,我已經導入了依賴關係(包含dropbox和jackson的包),然後導入了我自己的項目。
當我開始我的項目時,它會拋出以下異常;
java.lang.NoClassDefFoundError: javax/net/ssl/HttpsURLConnection
at com.dropbox.core.http.StandardHttpRequestor.prepRequest(StandardHttpRequestor.java:196)
at com.dropbox.core.http.StandardHttpRequestor.startPost(StandardHttpRequestor.java:70)
at com.dropbox.core.http.StandardHttpRequestor.startPost(StandardHttpRequestor.java:28)
at com.dropbox.core.DbxRequestUtil.startPostRaw(DbxRequestUtil.java:232)
at com.dropbox.core.v2.DbxRawClientV2$1.execute(DbxRawClientV2.java:100)
at com.dropbox.core.v2.DbxRawClientV2.executeRetriable(DbxRawClientV2.java:256)
at com.dropbox.core.v2.DbxRawClientV2.rpcStyle(DbxRawClientV2.java:97)
at com.dropbox.core.v2.users.DbxUserUsersRequests.getCurrentAccount(DbxUserUsersRequests.java:120)
at org.eclipse.kura.example.hello_osgi.DropBoxTransfer.<init>(DropBoxTransfer.java:37)
at org.eclipse.kura.example.hello_osgi.DropBoxUpdateJob.execute(DropBoxUpdateJob.java:20)
at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573)
我有兩個相關的問題;
當我們從公共api創建一個包時,這個包是否應該包含public api的傳遞依賴關係?
即使我提供Dropbox API與它的傳遞依賴關係,爲什麼拋出程序這樣的異常?
當我創建bundle時,我正在使用eclipse文件 - > new - > other - >插件來自現有的JAR Archieves。這不是創建捆綁包的好方法嗎? –
此外,我怎麼會知道我應該從「java.lang.NoClassDefFoundError:javax/net/ssl/HttpsURLConnection」這個語句導入哪個包? –
您需要導入的軟件包是「javax.net.ssl」。日蝕pde支持很糟糕。我建議使用maven構建來構建包。查看創建套件的選項的答案。 –