Déploiement de la bibliothèque client

La bibliothèque client d'un service HCL Commerce peut être déployée dans l'un des quatre environnements possibles :

  • Liaison proxy client de service Web générée.
  • Liaison EJB locale.
  • Liaison de service Web dans une application J2SE.
  • Liaison de service utilisant le sous-système de messagerie JCA HCL Commerce.
Remarque : HCL Commerce a quelques dépendances sur Eclipse Modeling Framework (EMF). Si vous déployez la bibliothèque client sur un ordinateur WebSphere Application Server qui ne contient pas HCL Commerce, vous devez inclure les ajouts suivants au classpath :
  • WebSphere Application Server Version 7 runtime
  • com.ibm.ws.webservices.thinclient_7.0.0.jar

Avant de commencer

Procédure

Pour déployer la bibliothèque client :

  1. Start HCL Commerce Developer..
  2. Empaquetez la bibliothèque client :
    • Si vous empaquetez votre propre application client, vous devez inclure les fichiers JAR suivants dans le chemin d'accès de classe de votre application client :
      • MyServiceModule-Client.jar, où MyServiceModule est le nom de votre module de service
      • MyServiceModule-DataObjects.jar
      • workspace_dir\WC\Foundation-Core.jar
      • workspace_dir\WC\Foundation-DataObjects.jar
      • workspace_dir\WC\Performance-Profiler.jar
  3. Copiez workspace_dir\WC\xml\config\com.ibm.commerce.foundation\wc-config-mapping-registry.xml et SDO.properties à n'importe quel répertoire \config du chemin d'accès de la classe d'application client. (Le fichier doit être dans un répertoire appelé config).
    Remarque : Le fichier wc-config-mapping-registry.xml fait partie de la configuration de la bibliothèque client et enregistre les configurations de composants dans le registre de mappage de configuration Foundation.

    Voir le fichier wc-config-mapping-registry.xml pour une configuration d'exemple.

  4. Dans le chemin d'accès de classe de l'application cliente, créez un dossier vide appelé config\component-id, où component-id est l'identificateur de votre composant.
    Par exemple, com.myco.commerce.myservicemodule.
  5. Copiez un fichier wc-component-client.xml existant dans votre nouveau dossier component-id. Les wc-component-client.xml existants sont dans le répertoire workspace_dir\WC\xml\config\com.ibm.commerce.component-id, où component-id est le nom du composant, par exemple catalog ou content. Vous devez modifier le fichier copié pour l'utiliser avec votre service de composant.
  6. Sélectionnez l'une des méthodes de liaison suivantes, qui sont basées sur le mécanisme d'authentification que vous avez choisi :
    OptionDescription
    Liaison de proxy client de service Web générée :
    1. Ouvrez Fenêtre > Préférences > Services Web > WebSphere > Génération de code JAX-RPC > WSDL2Java. Sélectionnez l'option Désactiver la liaison de données et l'utilisation de SOAPElement.
    2. Ouvrez le module Java EE qui utilise la bibliothèque client dans l'éditeur de descripteur de déploiement.
    3. Cliquez sur l'onglet Références et ajoutez une référence de service. Sélectionnez ensuite le bouton Suivant.

      Ajout d'une référence de service

    4. Sélectionnez la référence de service et sélectionnez le bouton Terminer.

      Sélection de la référence de service, Terminer.

      Cette option génère le code proxy client pour communiquer avec le service HCL Commerce. Ce proxy client a des méthodes pour chaque service. Chaque méthode prend un SOAPElement comme entrée et renvoie un SOAPElement. Cette option génère également la configuration de déploiement et le mappage RPC JAX pour créer le proxy client.
    5. Cliquez sur l'onglet Gestionnaire WS et créez un nouveau gestionnaire pour la référence de service nouvellement créée. La classe du gestionnaire doit être com.ibm.commerce.foundation.internal.client.services.invocation.impl.JAXRPCWebServiceProxyHandlerImpl. Le but de ce gestionnaire est d'inclure les informations d'autorisation dans la requête SOAP pour la prise en charge de l'utilisateur invité et de l'utilisateur enregistré.
    6. Ouvrez le fichier que vous avez créé à l'étape 4 et utilisez la classe proxy générée en modifiant l'implémentation de liaison d'invocation en com.ibm.commerce.foundation.internal.client.services.invocation.impl.JAXRPCWebServiceProxyInvocationBindingImpl. Ajoutez un proxy à cet élément de liaison nommé proxyClass avec la valeur de la classe proxy générée. Par exemple :
      <_config:invocationservice>
      <_config:invocationbinding bindingImpl="com.ibm.commerce.foundation.internal.client.services.invocation.imp
      l.JAXRPCWebServiceProxyInvocationBindingImpl">
      <_config:property name="proxyClass" value="com.ibm.www.CatalogServicesPortTypeProxy"/>
      </_config:invocationbinding>
      </_config:invocationservice>
    7. Utilisez la console d'administration pour gérer la liaison d'URL et le paramètre de sécurité pour l'associer à la configuration du service Web.

      Gestion de la liaison URL et du paramètre de sécurité pour l'associer à la configuration du service Web

    Liaison EJB locale

    Lorsque le service HCL Commerce et le client de ce service sont dans la même application. Pour des raisons de performances, le client ne devrait pas avoir à faire une requête de service Web à ce service. Au lieu de cela, la communication client et composant devrait être locale à l'application pour éviter les requêtes de service inutiles.

    1. Ouvrez le fichier wc-component-client.xml que vous avez créé à l'étape 4 et modifiez la liaison d'invocation à utiliser : com.ibm.commerce.foundation.internal.client.services.invocation.impl.LocalEJBInvocationBindingImpl
    2. Ajoutez une propriété jndiName de la liaison pour pointer vers le nom global du composant EJB local. Par exemple :
      
      <_config:InvocationBinding
      bindingImpl="com.ibm.commerce.foundation.internal.client.services.invocation.impl.LocalEJBInvocationBindingImpl">
      <_config:Property name="jndiName"
      value="ejb/com/ibm/commerce/catalog/facade/server/CatalogLocalFacadeHome"/>
      </_config:InvocationBinding>
      
    3. Sauvegardez le fichier.
    4. Déployez la configuration modifiée.
    5. Redémarrez le serveur.
    Liaison de service Web dans une application J2SE

    Lorsque le client du service HCL Commerce est déployé dans un environnement J2SE, il n'existe aucun service de dénomination pour résoudre la référence au service Web. Au lieu de cela, la liaison URL du service Web est définie dans la configuration de liaison du client.

    1. Ouvrez le fichier wc-component-client.xml que vous avez créé à l'étape 4 et modifiez la liaison d'invocation à utiliser : com.ibm.commerce.foundation.internal.client.services.invocation.impl.J2SEWebServiceInvocationBindingImpl
    2. Ajoutez une propriété URL à la liaison pour spécifier l'URL où le service Web peut être trouvé. Par exemple :
      
      <_config:InvocationBinding
      bindingImpl="com.ibm.commerce.foundation.internal.client.services.invocation.impl.J2SEWebServiceInvocationBindingImpl">
      <_config:Property name="url"
      value="http://localhost:81/webapp/wcs/component/catalog/services/CatalogServices"/>
      </_config:InvocationBinding>
      
    3. Sauvegardez le fichier.
    4. Déployez la configuration modifiée.
    5. Redémarrez le serveur.
    Liaison de service utilisant le sous-système de messagerie JCA HCL Commerce

    Lorsque le client du service est déployé dans l'application HCL Commerce, l'infrastructure JCA du sous-système de messagerie peut être utilisée pour émettre la requête de service. Avec cette configuration, l'interface utilisateur d'administration de messagerie existante peut être utilisée pour déterminer le transport et la cible du système pour recevoir le message.

    1. Ouvrez le fichier wc-component-client.xml que vous avez créé à l'étape 4 et modifiez la liaison d'invocation à utiliser : com.ibm.commerce.foundation.internal.client.services.invocation.impl.JCAInvocationBindingImpl
    2. Sauvegardez le fichier.
    3. Déployez la configuration modifiée.
    4. Créez un nouveau type de message associé à l'ID de composant utilisé pour créer une instance de l'objet de service d'invocation ; par exemple, com.myco.commerce.myservicemodule. Pour ce faire, ajoutez une ligne dans la table MSGTYPES pour affecter un nouveau msgtype_id. Utilisez un numéro d'ID supérieur à 1000. Par exemple :
      
      insert into MSGTYPES (MSGTYPE_ID, MSGTDIR, NAME, VIEWNAME,
      DESCRIPTION) 
      VALUES (1001, 1, '
      com.myco.commerce.myservicemodule' , '', 'My Service
      Component' );
      
    5. Attribuez un type de message à une méthode de transport pour le site ou le magasin.
    6. Redémarrez le serveur.