2

しばらくの間、Equinoxをosgiフレームワークとして使用するアプリケーションがあります。これまで、システムプロパティosgi.install.areaを使用して、バンドルの場所を指定していました。

${osgi.install.area}/
  plugins/
     org.eclipse.osgi_3.7.0.v20110613.jar
     ... my app bundles

その後、Equinoxは自動的${osgi.install.area}/configurationに構成領域として使用します。

すべてが正常に動作します。

読み取り専用である可能性があるため、構成領域を移動する必要があります。適切なパス${osgi.install.area}に設定するのと同じくらい簡単だと思いましたが${osgi.configuration.area}、これを行うと、アプリケーションが起動しなくなり、ログに次のスタックトレースが記録されます。 :

java.lang.IllegalStateException: Unable to acquire application service. Ensure that the org.eclipse.core.runtime bundle is resolved and started (see config.ini).
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:74)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.main(EclipseStarter.java:150)
...  

パスが使用されるのは、その場所にログファイルとディレクトリが作成されるためです"org.eclipse.osgi"

バンドルへのパスは私のconfig.iniように参照されています:

osgi.bundles=de.mycomp.app-0.6.0.20121116-1834.jar@start, ...

エラーメッセージは、実際にどこを見ればよいかについてのヒントを提供しません。それはかなり単純なものに違いないが、私は今のところかなり無知である。

前もって感謝します、

ロバート

4

1 に答える 1

2

.ini既存の osgi アプリの構成領域を変更してテストしたところ、インストールのルートにあるファイルに以下の引数を指定して動作しました。次のように設定パラメータを正しく設定していますか?

-Dosgi.configuration.area=c:\mytest

それを行ってアプリを再度実行すると、フォルダーと新しい構成が作成されました。

これは機能する私の.iniファイルのコピーです。また、osgi params が vm args の後に来ることも重要です。

-loglevel=trace
-vmargs
-Dosgi.configuration.area=c:\mytest
-Dorg.osgi.service.http.port=8094
-Declipse.ignoreApp=true
-Dosgi.noShutdown=true
-Dequinox.ds.print=true
于 2012-11-18T05:57:27.413 に答える