OSGIとKURAの新機能です。私は昨日から問題に取り組んでおり、その理由を理解していませんでした。束縛としての移行依存関係をKURAにインポートする必要があります
私の方法が間違っている場合は教えてください。
私のプロジェクトでdropbox-core-sdk
(バージョン3.0.0)を使用しています。私はそのjarファイルをダウンロードしました。また、jackson-core
(バージョン2.7.4)に依存していることを調査しました。私もその瓶をダウンロードして、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)
私には2つの関連する質問があります。
パブリックAPIからバンドルを作成する場合、このバンドルにパブリックAPIの推移的な依存関係が含まれている必要がありますか?
推移的な依存関係を持つDropbox APIを提供しても、なぜそのような例外がスローされましたか?バンドルがバンドルに存在しないクラスをロードしたクラスのパッケージの
Import-Package
文が存在しないとき
バンドルを作成するときに、eclipseファイル - > new - > other - > Plug-in From Existing JAR Archievesを使用しています。バンドルを作成するのは良い方法ではありませんか? –
さらに、「java.lang.NoClassDefFoundError:javax/net/ssl/HttpsURLConnection」からこのパッケージをインポートする必要があることをどのように知ることができますか? –
インポートするパッケージは "javax.net.ssl"です。日食pdeサポートは吸う。 mavenビルドを使用してバンドルをビルドすることをお勧めします。バンドルを作成するオプションについては、answerを参照してください。 –