我有一段时间使用 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, ...
错误消息并没有真正提示在哪里查看。这一定是相当简单的事情,但我现在相当无能。
提前致谢,
罗伯特