0

OSGI サービスをリモートでアクセスできるようにするために、ActiveMQ JMS ブローカーを ECF フレームワーク内のディストリビューション プロバイダーとして使用したいと考えています。どの手順を実行する必要がありますか?

4

1 に答える 1

0

それを文書化するために、私は自分の質問に答えます。

  1. ディストリビューションとして ecf.generic.server を使用し、検出プロバイダーの 1 つ (たとえば、zookeeper) を使用して、最小限の作業 ECF リモート サービス ワークスペースを取得します。http://wiki.eclipse.org/EIG:Getting_Started_with_OSGi_Remote_Servicesチュートリアルを使用できます。

  2. デフォルト構成で ActiveMQ ブローカーをインストールします。

  3. https://github.com/ECF/JMSから JMS/ActiveMQ ECF プロバイダーをダウンロードします。org.eclipse.ecf.provider.jmsおよびorg.eclipse.ecf.provider.jms.activemqプロジェクトをワークスペースに追加し、それらをビルドして、実行構成またはターゲット プラットフォームに追加します。

  4. プロバイダー サービスのプロパティに対して、次の変更を行います。

    を。"service.exported.configs"as のプロパティを変更します。"ecf.jms.activemq.tcp.client"

    b. [ACTIVEMQ_IP] をブローカー IP に置き換え"ecf.endpoint.connecttarget.id"て、次の値でプロパティを追加します。"tcp://[ACTIVEMQ_IP]:61616/rs_topic"サービスに関連するものとしてトピック名を変更することもできます。

  5. 次に、ActiveMQ JMS サーバー コンテナーも必要です。次のコードをプロバイダー側​​に追加します。Activator を使用するか、DS で新しいコンポーネントを起動します。IContainerFactoryサービス レジストリからオブジェクトを取得することもできます。

    IContainerFactory containerFactory = ContainerFactory.getDefault();
    containerFactory.createContainer("ecf.jms.activemq.tcp.manager", 
    new Object[] { "tcp://[ACTIVEMQ_IP]:61616/rs_topic" });
    
于 2014-12-12T13:07:06.070 に答える