2017-03-27 12 views
1

OSGIとKURAの新機能です。私は昨日から問題に取り組んでおり、その理由を理解していませんでした。束縛としての移行依存関係をKURAにインポートする必要があります

私の方法が間違っている場合は教えてください。

私のプロジェクトでdropbox-core-sdk(バージョン3.0.0)を使用しています。私はそのjarファイルをダウンロードしました。また、jackson-core(バージョン2.7.4)に依存していることを調査しました。私もその瓶をダウンロードして、dropbox-core-sdk.jarjackson-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つの関連する質問があります。

  1. パブリックAPIからバンドルを作成する場合、このバンドルにパブリックAPIの推移的な依存関係が含まれている必要がありますか?

  2. 推移的な依存関係を持つDropbox APIを提供しても、なぜそのような例外がスローされましたか?バンドルがバンドルに存在しないクラスをロードしたクラスのパッケージのImport-Package文が存在しないとき

答えて

1

通常NoClassDefFoundErrorが起こります。

バンドルを作成するときは、適切なImport-PackageExport-Package命令を使用してマニフェストを自動作成するためにbndを使用してください。

私はいつもjarからバンドルを作成するためにビルドを使用します。私はmavenを使用するので、私はmavenプラグインを使用します。 See this question for some possible ways to create bundles

+0

バンドルを作成するときに、eclipseファイル - > new - > other - > Plug-in From Existing JAR Archievesを使用しています。バンドルを作成するのは良い方法ではありませんか? –

+0

さらに、「java.lang.NoClassDefFoundError:javax/net/ssl/HttpsURLConnection」からこのパッケージをインポートする必要があることをどのように知ることができますか? –

+0

インポートするパッケージは "javax.net.ssl"です。日食pdeサポートは吸う。 mavenビルドを使用してバンドルをビルドすることをお勧めします。バンドルを作成するオプションについては、answerを参照してください。 –

関連する問題