【问题标题】:Setting osgi.configuration.area breaks my Equinox OSGI app设置 osgi.configuration.area 会破坏我的 Equinox OSGI 应用程序
【发布时间】:2012-11-16 18:32:23
【问题描述】:

我有一段时间使用 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, ...

错误消息并没有真正提示在哪里查看。这一定是一些相当简单的事情,但我现在很无能为力。

提前致谢,

罗伯特

【问题讨论】:

    标签: osgi equinox


    【解决方案1】:

    我测试了更改现有 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
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-23
    • 2013-12-23
    • 2010-12-03
    • 1970-01-01
    • 1970-01-01
    • 2011-05-06
    • 1970-01-01
    相关资源
    最近更新 更多