如何让JBossAS 7.2在加载包时注册我的OSGi服务?

如何让JBossAS 7.2在加载包时注册我的OSGi服务?,jboss,osgi,jboss7.x,blueprint-osgi,Jboss,Osgi,Jboss7.x,Blueprint Osgi,我创建了一个小样本项目,用Spring实现OSGi(即Blueprint),我可以让所有捆绑包安装、解析并正常启动,但捆绑包启动时我的服务没有注册 我已经完成了整个项目,因此您可以查看源代码-构建输出的JAR位于artifacts文件夹中,但是您也可以通过运行gradle assemble自行构建项目 正如我所理解的Blueprint规范,特别是,如果配置文件位于正确的位置,则不需要activator类来注册服务-在我的jar中,我在OSGI-INF/Blueprint/sillyservice

我创建了一个小样本项目,用Spring实现OSGi(即Blueprint),我可以让所有捆绑包安装、解析并正常启动,但捆绑包启动时我的服务没有注册

我已经完成了整个项目,因此您可以查看源代码-构建输出的JAR位于
artifacts
文件夹中,但是您也可以通过运行
gradle assemble
自行构建项目

正如我所理解的Blueprint规范,特别是,如果配置文件位于正确的位置,则不需要activator类来注册服务-在我的jar中,我在
OSGI-INF/Blueprint/sillyservice.xml下有以下内容:

<?xml version="1.0" encoding="UTF-8"?>
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">

    <bean id="sillyService" class="se.sunstone.silly.service.ServiceImpl"
        init-method="startService">
    </bean>

    <service ref="helloservice"
        interface="com.sample.blueprint.helloworld.api.HelloWorldService" />
</blueprint>
列出了JBoss中OSGi框架注册的一组服务,但没有列出my
SillyService


我需要做什么才能使此工作正常?

要启用Blueprint功能,您需要安装Blueprint Extender捆绑包。有两种可用的实现:ApacheAries和EclipseGemini。我推荐Aries,它可以从

获得,如果您想自己在JBoss AS 7.2中部署它,您还需要提供commons.logging(版本信息在构建文件中)。OSGi框架依赖项是由JBoss提供的。您部署Blueprint Extender捆绑包了吗?@NeilBartlett:不是手动部署的,没有-当我在配置文件中以及在模块和捆绑包jar中查找时,我找不到它。所以这很可能就是罪魁祸首。但是,我找不到任何关于从何处获取捆绑包以及如何将其添加到JBoss配置的文档。你能给我点化一下吗?在回答中这样做,这样我就可以给你upvowers=)我不知道如何将它添加到JBoss配置中,因为我不使用JBoss。我会告诉你在哪里可以找到这个捆绑包。有没有具体的原因让你更喜欢Aries的实现而不是Eclipse的?我倾向于使用Gemini Blueprint,因为它可以从ebr.springsource.com上获得,所以我可以使用我的构建工具下载所有必需的归档文件及其依赖项。Aries实现更加轻量级,实际上由关心它的开发人员维护。Gemini的实现最初由SpringSource维护,但在本周迁移到VMware或Pivotal或其他他们称之为自己的应用程序后,基本上已经被放弃;-)我现在还是选择双子座的路线。不必在互联网上翻找所有的jar,这很好——对于Aries的实现来说可能也非常简单,但只要它起作用,我就不会切换;)谢谢你的帮助!
ServiceReference[] refs = context.getAllServiceReferences(null, null);
if (refs != null) {
    logger.info(String.format("There are %s references", refs.length));

    for (ServiceReference ref : refs) {
        logger.info(ref);
    }
} else {
    logger.info("There are no registered services.");
}