Le client externe
La communication sortante s'effectue avec le client externe de chaque service.
Configuration du client externe
La configuration d'un client externe se trouve à l'emplacement suivant :
WC\xml\config\ServiceName.external
Par exemple, la configuration Placer le client externe se trouve sous le répertoire com.ibm.commerce.order.external.Ce répertoire doit contenir un fichier wc-component-client.xml qui indique la méthode de liaison utilisée pour effectuer des requêtes externes.
Pour les clients externes, la liaison recommandée est JCAInvocationBinding, qui utilise le système de messagerie WC et l'adaptateur de service Web JCAHttp ou l'adaptateur de service Web JCAJMS pour envoyer des requêtes.
Utilisation d'un client externe
Les exemples d'étapes suivants décrivent l'utilisation d'un client externe :
- Ecrivez du code pour effectuer une requête à l'aide du client externe. Par exemple :
// Create the project noun. ProjectType project = ProjectFactory.eINSTANCE.createProjectType(); ProjectIdentifierType projectIdentifier = ProjectFactory.eINSTANCE.createProjectIdentifierType(); projectIdentifier.setUniqueID("theProjectID"); project.setProjectIdentifier(projectIdentifier); // Create the process action expression. String expression = ProjectFacadeConstants.XPATH_PROJECT + "1" + ProjectFacadeConstants.CLOSE_XPATH; List<ActionExpressionType> actionExpressions = new ArrayList(); actionExpressions.add(ExternalProjectFacadeClient.createActionExpression("Transfer", SelectionCriteriaHelper.STR_XPATH_LANG, expression)); // Create the process BOD. ProcessProjectType processProject = ProjectFactory.eINSTANCE.createProcessProjectType(); ProcessProjectDataAreaType projectDataArea = ProjectFactory.eINSTANCE.createProcessProjectDataAreaType(); // Populate the process verb. projectDataArea.setProcess(ExternalProjectFacadeClient.createProcessVerb(actionExpressions)); // Populate the project noun. projectDataArea.getProject().add(project); // Send the external project request. ExternalProjectFacadeClient externalProjectClient = new ExternalProjectFacadeClient(); AcknowledgeProjectType acknowledgeProcess = externalProjectClient.processProject(processProject); - Configurez le client externe pour utiliser la liaison JCA. Par exemple :
- Créez un répertoire de configuration pour le client externe. Par exemple, \xml\config\com.mycompany.commerce.project.external.
- Créez un fichier wc-component-client.xml dans le répertoire configuré pour la liaison JCA. Par exemple :
<_config:DevelopmentClientConfiguration xmlns:_config="http://www.ibm.com/xmlns/prod/commerce/foundation/config" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.ibm.com/xmlns/prod/commerce/foundation/config ../xsd/wc-component-client.xsd"> <_config:invocationservice> <_config:invocationbinding bindingImpl="com.ibm.commerce.foundation.internal.client.services.invocation.impl.JCAInvocationBindingImpl"> </_config:invocationbinding> </_config:invocationservice> </_config:DevelopmentClientConfiguration>
- Configurez le transport et la destination dans le système de messagerie WC. Par exemple :
- Ajoutez un nouveau type de messages pour les requêtes de service externe (SQL).L'exemple suivant crée un type de messages com.mycompany.commerce.project.external :
- Connexion à la base de données.
- Exécutez la requête suivante :
insert into msgtypes (msgtype_id, msgtdir, name, viewname, description) values (1010, 1, 'com.mycompany.commerce.project.external', ' ', 'External Project Service');
- Configurez le transport et la destination du nouveau type de messages.Remarque : L'adaptateur de service Web HTTP doit être activé.
- Ouvrez la console d'administration.
- Sélectionnez .
- Cliquez sur Nouveau.
- Sélectionnez le nouveau type de messages. Par exemple, com.mycompany.commerce.project.external.
Transport : WebServices(HTTP)
Format d'unité : WebServices
- Cliquez sur Suivant.
- Ajoutez l'URL de destination, le nom d'utilisateur et le mot de passe si nécessaire.
- Cliquez sur Terminer.
- Ajoutez un nouveau type de messages pour les requêtes de service externe (SQL).
- Voici un exemple de requête sortante de WC, à l'aide du fragment de code de l'étape 1 :
<myprj:ProcessProject releaseID="9.0" versionID="7.0.0.0" xmlns:_wcf="http://www.ibm.com/xmlns/prod/commerce/9/foundation" xmlns:myprj="http://www.mycompany.com/xmlns/prod/commerce/9/project" xmlns:oa="http://www.openapplications.org/oagis/9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <oa:ApplicationArea xsi:type="_wcf:ApplicationAreaType"> <oa:CreationDateTime>2009-10-23T20:07:15.156Z</oa:CreationDateTime> <oa:BODID>a8688c80-c00f-11de-b7b8-829b4ae20b43</oa:BODID> <_wcf:BusinessContext/> </oa:ApplicationArea> <myprj:DataArea> <oa:Process> <oa:ActionCriteria> <oa:ActionExpression actionCode="Transfer" expressionLanguage="_wcf:XPath">/Project[1]</oa:ActionExpression> </oa:ActionCriteria> </oa:Process> <myprj:Project> <myprj:ProjectIdentifier> <myprj:UniqueID>theProjectID</myprj:UniqueID> </myprj:ProjectIdentifier> </myprj:Project> </myprj:DataArea> </myprj:ProcessProject>