【发布时间】:2013-01-31 09:21:08
【问题描述】:
我已经编写了一些 Camel 代码,但是在 Windows 上部署到 FuseESB v7.10 时,我在日志中收到以下异常:
Unable to resolve 337.0: missing requirement [337.0]
osgi.wiring.package; (&(osgi.wiring.package=org.hsqldb)(version>=1.8.0.7)
(!(version>=2.0.0))) at
org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:4054)
该项目是使用 Blueprint OSGi xml 文件编写来定义 bean,然后使用 Maven 构建的,作为 jar(而不是 OSGi 包),然后热部署到部署目录,因此它由 FuseESB 部署FAB 部署程序。它在 Maven POM 中对 HSQLDB 没有显式依赖,所以我假设这是一个传递依赖。但是,我尝试安装我认为相关的捆绑包:
osgi:install mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.hsqldb/1.8.0.10_2
此捆绑包现在在 Karaf 控制台中显示为活动:
[335] [Active] [ ] [ ] [ 60] Apache ServiceMix :: Bundles :: hsqldb (1.8.0.10_2)
如果我运行命令 packages:exports 似乎表明此捆绑包导出了正确的依赖项:
FuseESB:karaf@root> packages:exports 335
ID Packages
335 org.hsqldb.resources; version=1.8.0.10
335 org.hsqldb.types; version=1.8.0.10
335 org.hsqldb.jdbc; version=1.8.0.10
335 org.hsqldb.scriptio; version=1.8.0.10
335 org.hsqldb.rowio; version=1.8.0.10
335 org.hsqldb.store; version=1.8.0.10
335 org.hsqldb.index; version=1.8.0.10
335 org.hsqldb.persist; version=1.8.0.10
335 org.hsqldb.lib.java; version=1.8.0.10
335 org.hsqldb.util.sqltool; version=1.8.0.10
335 org.hsqldb; version=1.8.0.10
335 org.hsqldb.sample; version=1.8.0.10
335 org.hsqldb.util; version=1.8.0.10
335 org.hsqldb.lib; version=1.8.0.10
但是我的包仍然无法启动,并给出了同样的错误。有什么想法吗?
【问题讨论】:
-
“但是我的包仍然无法启动。”
-
这是同样的错误信息,这表明我可能没有安装正确的包?
-
好的,所以检查丢失的包
org.hsqldb是否由您安装的包导出:inspect cap osgi.wiring.package 335 -
我不确定 ServiceMix 上是否提供了检查帽,所以我给出了 packages:exports 命令的输出,希望能显示适当的信息?
-
您是否启动了 Derby 捆绑包?
标签: osgi apache-servicemix blueprint-osgi fuseesb