【发布时间】:2016-02-27 05:34:26
【问题描述】:
我是 fuse 的新手,正在开发组件测试。
我需要在 Java 中调用实现ActiveMQ(在fuse 之外)的组件。
在Spring 中会是这样的:
<osgi:reference id="activemq" interface="org.apache.camel.Component"
filter="(component.name=ActiveMQ)"/>
但是我不知道如何在 Java 中引用这个组件。
终于找到了方法:
BundleContext ctx = FrameworkUtil.getBundle(YourClass.class).getBundleContext();
ServiceReference[] sRef;
sRef = ctx.getServiceReferences(Component.class.getName(), "(component.name={{YourComponentName}})");
Component amqComponent = (Component) ctx.getService(sRef[0]);
context.addComponent("activemq", amqComponent);
【问题讨论】:
-
谢谢你 rkm_Hodor_king :)
-
@Marta Cruz,当您解决自己的问题时,您不得在问题中包含答案。相反,您必须将其添加为单独的答案
标签: java spring apache-camel activemq jbossfuse