2015-10-04 86 views
0

我使用的Karaf(4.0.1)如春-DM,我试图启动几个春天-DM启用包(这我不是的作者) 。询问的OSGi /春-DM框架,以包的依赖性

这些捆绑有这将被Spring-DM注入一些依赖/服务的依赖性和我目前通过履行所有依赖然而工作任务费时费力。

有我目前使用的确定依赖几个选项:

  1. 检查包的`META /春”文件夹,内检查该XML文件。
  2. 安装捆绑软件并检查Karaf日志中的捆绑失败消息。

这种方法对我来说效率不高,我想知道是否有办法可以询问OSGi框架(在本例中是Karaf)还是Spring-DM本身,并查询特定软件包正在等待什么被履行。

我可以写一个Karaf命令行命令,让我这样做,但我不知道如何去询问春-DM或Karaf来获取信息。

有什么建议吗?

回答

0

你不应该看春天DM。第一步是确保所有软件包导入工作正常。最简单的方法是查看包的清单来安装或使用bundle:headers。只要安装了软件包,就可以使用diag命令来检查它等待的服务。

+0

如果包是在“瓦亭”状态,诊断只是报告说,它在等待,但是不知道它在等待。我要么滚动浏览日志以查看捆绑软件安装的时间,并查找“信息”日志(蓝色文本)或等待等待“超时”,即使诊断完毕也没有报告。为此我必须检查日志。如果我可以通过API调用(如果有的话)简单地询问捆绑软件X在等待的是什么,那将是一件好事。如果这样和API存在,我可以创建一个Karaf命令。 – Kerry

+0

一个“等待”状态,通常表示它正在等待一项服务。类似于标准的GracePeriod。蓝图服务。所以实际上确保所有这些要求都得到满足。当前的diag命令已经显示了蓝图包“等待”的内容,所以也可以将它应用于spring-dm包。 –

+0

diag命令中已经支持spring dm状态事件。 bundle org.apache.karaf.bundle.springstate应该提供这些信息。如果你安装了这个软件包,但没有看到等待的理由,那么这是一个错误。你可以在卡拉夫开个问题吗?我可以研究它。 –