为了使 OSGI 服务可以远程访问,我想使用 ActiveMQ JMS 代理作为 ECF 框架内的分发提供程序。我应该采取哪些步骤?
1 回答
我将回答我自己的问题以记录它。
获得一个最小的 ECF 远程服务工作区,其中 ecf.generic.server 作为分发和发现提供者之一(例如 zookeeper)。您可以使用http://wiki.eclipse.org/EIG:Getting_Started_with_OSGi_Remote_Services教程。
使用默认配置安装 ActiveMQ 代理。
从https://github.com/ECF/JMS下载 JMS/ActiveMQ ECF 提供程序。在您的工作区中添加
org.eclipse.ecf.provider.jms
和org.eclipse.ecf.provider.jms.activemq
项目,构建并将它们添加到您的运行配置或目标平台。对于提供者服务属性,请执行以下更改:
一个。更改
"service.exported.configs"
as 的属性"ecf.jms.activemq.tcp.client"
湾。添加
"ecf.endpoint.connecttarget.id"
具有以下值的属性"tcp://[ACTIVEMQ_IP]:61616/rs_topic"
,将 [ACTIVEMQ_IP] 替换为代理 IP。您还可以将主题名称更改为与您的服务相关的内容。现在我们还需要一个 ActiveMQ JMS 服务器容器。将以下代码添加到提供程序端。使用 Activator 或使用 DS 启动新组件。
IContainerFactory
您还可以从服务注册表中获取对象。IContainerFactory containerFactory = ContainerFactory.getDefault(); containerFactory.createContainer("ecf.jms.activemq.tcp.manager", new Object[] { "tcp://[ACTIVEMQ_IP]:61616/rs_topic" });