我的一个项目中有一些奇怪的问题。我正在尝试在 OSGi 环境中运行一些 JUnit 测试(测试位于由 osgi 包托管的片段中;使用 eclipse 中的“JUnit Plug-in Test”启动器启动操作)。当我尝试启动测试时,出现以下错误:
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 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:619)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:574)
at org.eclipse.equinox.launcher.Main.run(Main.java:1407)
at org.eclipse.equinox.launcher.Main.main(Main.java:1383)
An error has occurred. See the log file
在上面的日志中,我还得到:
!ENTRY org.eclipse.osgi 2 0 2012-08-22 13:53:24.058
!MESSAGE One or more bundles are not resolved because the following root constraints are not resolved:
!SUBENTRY 1 org.eclipse.osgi 2 0 2012-08-22 13:53:24.059
!MESSAGE Bundle reference:file:/C:/.../plugins/org.eclipse.pde.junit.runtime_3.4.200.v20120530-1435.jar was not resolved.
!SUBENTRY 2 org.eclipse.pde.junit.runtime 2 0 2012-08-22 13:53:24.059
!MESSAGE Missing required bundle org.eclipse.core.runtime_[3.3.0,4.0.0).
但是,org.eclipse.core.runtime
似乎可用(eclipse 运行没有任何问题,我可以使用 OSGi 运行启动项目)。根据“Eclipse 安装详细信息”,核心运行时的版本为 3.8.0.v20120521-2346,在 junit ( [3.3.0,4.0.0)
) 所需的正确范围内。
我还有另一个相同的 Eclipse(相同的版本等......它来自相同的 .zip 存档),我可以在其中为另一个项目运行相同类型的测试。我检查了配置,但没有发现任何区别。因此,我目前无法理解可能导致此问题的原因。
非常感谢任何可以帮助我解决这个问题的想法,