我正在尝试熟悉 OSGI 平台,并且阅读了一本关于它的德文书籍。我尝试按照每个教程步骤来运行一个简单的“hello world”包,但它失败了。
以下是我完成的步骤:
- 已安装 Eclipse (3.7.0)
- 已安装 Equinox SDK (3.7)
- 使用目标平台 OSGi 标准在 Eclipse 中创建了一个新插件
- 将一些“hello world”代码放入 BundleActivator 类的启动和停止方法
- 在“运行”OSGi 框架配置中配置,仅选择了我的包和“org.eclipse.osgi”包。
运行它会给我以下消息。谁能帮我让它运行起来?
错误信息可以在这里找到:
osgi> !SESSION 2011-06-25 09:30:13.625 ----------------------------------------------- eclipse.buildId=unknown java.version=1.6.0_24 java.vendor=Sun Microsystems Inc. BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=de_DE Command-line arguments: -dev file:C:/Documents and Settings/itsme/eclipse/workspace/.metadata/.plugins/org.eclipse.pde.core/Hello World Example/dev.properties -os win32 -ws win32 -arch x86 -consoleLog -console
!ENTRY org.eclipse.equinox.jsp.jasper 4 0 2011-06-25 09:30:17.609 !MESSAGE FrameworkEvent ERROR !STACK 0 org.osgi.framework.BundleException: The bundle "org.eclipse.equinox.jsp.jasper_1.0.300.v20110502 [37]" could not be resolved. Reason: Missing Constraint: Import-Package: org.apache.jasper.servlet; version="[0.0.0,6.0.0)" at org.eclipse.osgi.framework.internal.core.AbstractBundle.getResolverError(AbstractBundle.java:1327)
最佳答案
我不确定您是如何完成所遵循的教程的每个步骤的,但是 Lars Vogel的 eclipse tutorials非常有用。
我刚刚测试了他的 Hello World OSGi tutorial (为 Eclipse 3.7 编写)对我来说效果很好,所以我建议尝试一下。
或者,如果您坚持对现有项目进行故障排除:
听起来您没有正确激活目标平台。
尝试单击 OSGi 框架运行配置中的Validate Bundles 按钮(在调试按钮的下拉菜单中,选择Debug Configurations)并查看是否通过。如果没有,请尝试取消选中Target Platform,然后单击Add Required Bundles 按钮,然后重试。
我正在运行 Eclipse 3.6,我能够使用 this equinox 3.7 release build 启动一个新的插件项目作为我的目标平台,没有任何验证错误。
关于java - 简单的 hello world bundle (osgi) 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6478744/