OSGI サービスをリモートでアクセスできるようにするために、ActiveMQ JMS ブローカーを ECF フレームワーク内のディストリビューション プロバイダーとして使用したいと考えています。どの手順を実行する必要がありますか?
1 に答える
それを文書化するために、私は自分の質問に答えます。
ディストリビューションとして ecf.generic.server を使用し、検出プロバイダーの 1 つ (たとえば、zookeeper) を使用して、最小限の作業 ECF リモート サービス ワークスペースを取得します。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"
b. [ACTIVEMQ_IP] をブローカー IP に置き換え
"ecf.endpoint.connecttarget.id"
て、次の値でプロパティを追加します。"tcp://[ACTIVEMQ_IP]:61616/rs_topic"
サービスに関連するものとしてトピック名を変更することもできます。次に、ActiveMQ JMS サーバー コンテナーも必要です。次のコードをプロバイダー側に追加します。Activator を使用するか、DS で新しいコンポーネントを起動します。
IContainerFactory
サービス レジストリからオブジェクトを取得することもできます。IContainerFactory containerFactory = ContainerFactory.getDefault(); containerFactory.createContainer("ecf.jms.activemq.tcp.manager", new Object[] { "tcp://[ACTIVEMQ_IP]:61616/rs_topic" });