シナリオ:構築ブロックのサービスのオーバーライド


要件に基づいて、独自のサービスの実装を使用して、構築ブロックのサービスをオーバーライド/置換できます。 

実装の概要

カスタムサービスを追加するには、CorrespondenceManagementSolutionTemplate/Services プロジェクトの構築ブロックサービスに対して、カスタム実装を追加します。また、既存のサービスにカスタム実装を提供すると同時に、そのサービスのインターフェイスを実装します。例えば、CategoryService のカスタム実装を提供するには、com.adobe.icc.services.api.CategoryService インターフェイスを実装します。
  1. 次の bean エントリを CorrespondenceManagementSolutionTemplate¥Services¥resources¥META-INF¥spring¥cm¥adobe-cm-spring-config.xml ファイルに追加します。
    <bean id="customCategoryService" class="com.adobe.icc.CustomCategoryServiceImpl" />
    注意: これらのサンプル設定では、カスタム実装クラスの完全修飾名が com.adobe.icc.CustomCategoryServiceImpl であることを前提としています。
  2. 次のエントリを CorrespondenceManagementSolutionTemplate¥Services¥resources¥META-INF¥spring¥osgi-context.xml ファイルの <bp:blueprint> セクションに追加します。

    <bp:service interface="com.adobe.icc.services.api.CategoryService" ranking="10" ref="customCategoryService"> 
           <bp:service-properties> 
                   <entry key="connectors.httpinvoker" value="true" /> 
                   <entry key="connectors.httpinvoker.alias" value="/lc.icc.dbservices.categoryService" /> 
            </bp:service-properties> 
    </bp:service>
    注意: この設定により、元のカテゴリサービスよりもランクが高いカスタムカテゴリサービスが公開されます。また、2 つのサービスプロパティにより、http エンドポイントで公開されているカテゴリサービスが、カスタムカテゴリサービスでオーバーライドされます。
  3. CorrespondenceManagementSolutionTemplate¥package-resources¥etc¥aep¥config¥dataservices¥destinations¥remoting に XML ファイルを作成し、次の情報で更新されたリモート宛先を公開します。

    <destination id="lc.icc.dbservices.categoryService"> 
           <properties> 
                <factory>osgi</factory> 
                <scope>application</scope> 
                <source>com.adobe.icc.services.api.CategoryService</source> 
           </properties> 
    </destination>
    注意: この設定により、リモートエンドポイントで公開されているカテゴリサービスが、カスタムカテゴリサービスでオーバーライドされます。Flex コードは既に書き込まれ、元のサービスのリモート ID に関連付けられているので、この手順は重要です。これを置き換えるには、より高いランクのカスタムサービスを、同じリモート ID で使用できるようにします。
  4. ソリューションテンプレートを再構築および再デプロイして変更を確認します。再構築および再デプロイについては、Solution Template の構築とデプロイを参照してください。