设置osgi.configuration.area会中断我的Equinox osgi应用程序

设置osgi.configuration.area会中断我的Equinox osgi应用程序,osgi,equinox,Osgi,Equinox,我有一个应用程序使用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作为配置区域 一切正常 现在,我需要将配置区域移出${os

我有一个应用程序使用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”

捆绑包的路径在my
config.ini
中引用,如下所示:

osgi.bundles=de.mycomp.app-0.6.0.20121116-1834.jar@start, ...
错误消息并没有真正给出在哪里查找的提示。这一定很简单,但我现在还不太明白

提前感谢,


Robert

我测试了如何更改现有osgi应用程序的配置区域,它成功了,安装根目录下的
.ini
文件中有以下参数。是否确实正确设置了配置参数,如下所示:

-Dosgi.configuration.area=c:\mytest
完成此操作并再次运行应用程序后,它创建了文件夹和新配置

这是我的
.ini
文件的一个副本,它可以正常工作,而且osgi参数必须位于和vm参数之后

-loglevel=trace
-vmargs
-Dosgi.configuration.area=c:\mytest
-Dorg.osgi.service.http.port=8094
-Declipse.ignoreApp=true
-Dosgi.noShutdown=true
-Dequinox.ds.print=true

我有一个非常相似的问题。你能帮我吗?