Szenario: Bausteindienste ersetzen


Bei Bedarf können Sie einen Bausteindienst durch Ihre eigene Implementierung des Diensts ersetzen. 

Übersicht über die Implementierung

Um einen benutzerdefinierten Dienst hinzuzufügen, fügen Sie die benutzerdefinierte Implementierung des Bausteindiensts im CorrespondenceManagementSolutionTemplate/Services-Projekt hinzu. Implementieren Sie für die Bereitstellung einer benutzerdefinierten Implementierung für den Dienst die vorhandene Dienstschnittstelle. Implementieren Sie beispielsweise die Schnittstelle „com.adobe.icc.services.api.CategoryService“, um eine benutzerdefinierte Implementierung für CategoryService bereitzustellen.
  1. Fügen Sie den folgenden Beaneintrag der Datei „CorrespondenceManagementSolutionTemplate\Services\resources\META-INF\spring\cm\adobe-cm-spring-config.xml“ hinzu:
    <bean id="customCategoryService" class="com.adobe.icc.CustomCategoryServiceImpl" />
    Hinweis: Dies sind Beispielkonfigurationen, bei denen davon ausgegangen wird, dass der vollqualifizierte Name der benutzerdefinierten Implementierungsklasse com.adobe.icc.CustomCategoryServiceImpl lautet.
  2. Fügen Sie den folgenden Eintrag dem Abschnitt „<bp:blueprint>“ der Datei „CorrespondenceManagementSolutionTemplate\Services\resources\META-INF\spring\osgi-context.xml“ hinzu:

    <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>
    Hinweis: Bei dieser Konfiguration wird dem benutzerdefinierten Kategoriedienst ein höherer Rang als dem ursprünglichen Kategoriedienst verliehen. Die beiden Diensteigenschaften ersetzen außerdem den Kategoriedienst am HTTP-Endpunkt durch den benutzerdefinierten Kategoriedienst.
  3. Erstellen Sie am Speicherort „CorrespondenceManagementSolutionTemplate\package-resources\etc\aep\config\dataservices\destinations\remoting“ eine XML-Datei, um dem geänderten Remoting-Ziel die folgenden Informationen bereitzustellen:

    <destination id="lc.icc.dbservices.categoryService"> 
           <properties> 
                <factory>osgi</factory> 
                <scope>application</scope> 
                <source>com.adobe.icc.services.api.CategoryService</source> 
           </properties> 
    </destination>
    Hinweis: Bei dieser Konfiguration wird der Kategoriedienst am Remoting-Endpunkt durch den benutzerdefinierten Kategoriedienst ersetzt. Dieser Schritt ist wichtig, da der Flex-Code bereits geschrieben und an die Remoting-ID des ursprünglichen Diensts gebunden ist. Um ihn zu ersetzen, machen Sie den benutzerdefinierten Dienst mit dem höheren Rang mit derselben Remoting-ID verfügbar.
  4. Erstellen Sie zum Anzeigen der Änderungen die Lösungsvorlage neu und stellen Sie sie erneut bereit. Informationen zum erneuten Erstellen und Bereitstellen finden Sie unter Lösungsvorlage erstellen und bereitstellen.