Desplegar la biblioteca de cliente

La biblioteca de cliente para un servicio de HCL Commerce se puede desplegar en uno de los cuatro entornos posibles:

  • Un enlace proxy del cliente de servicio web generado.
  • Un enlace EJB local.
  • Un enlace de servicio web en una aplicación J2SE.
  • Un enlace de servicio utilizando el subsistema de mensajería JCA de HCL Commerce.
Nota: HCL Commerce tiene algunas dependencias en la infraestructura de modelado de Eclipse (EMF). Si va a desplegar la biblioteca de cliente en una máquina de WebSphere Application Server que no contiene HCL Commerce, debe incluir las adiciones siguientes a la vía de acceso de clase:
  • Tiempo de ejecución de WebSphere Application Server Versión 7
  • com.ibm.ws.webservices.thinclient_7.0.0.jar

Antes de empezar

Procedimiento

Para desplegar la biblioteca de cliente:

  1. Start HCL Commerce Developer..
  2. Empaquete la biblioteca de cliente:
    • Si va a empaquetar su propia aplicación de cliente, debe incluir los archivos JAR siguientes en la clase de la aplicación de cliente:
      • MyServiceModule-Client.jar, donde MyServiceModule es el nombre de su nuevo módulo de servicio
      • MyServiceModule-DataObjects.jar
      • workspace_dir\WC\Foundation-Core.jar
      • workspace_dir\WC\Foundation-DataObjects.jar
      • workspace_dir\WC\Performance-Profiler.jar
  3. Copie workspace_dir\WC\xml\config\com.ibm.commerce.foundation\wc-config-mapping-registry.xml y SDO.properties a cualquier directorio \config de la vía de acceso de clase de la aplicación cliente. (El archivo debe estar en un directorio denominado config).
    Nota: El archivo wc-config-mapping-registry.xml forma parte de la configuración de biblioteca de cliente y registra configuraciones de componente del registro de correlación de configuración de Foundation.

    Consulte el archivo wc-config-mapping-registry.xml para ver una configuración de muestra.

  4. En la vía de acceso de clase de la aplicación cliente, cree una carpeta vacía que se denomine config\component-id, donde component-id es el identificador del componente.
    Por ejemplo, com.myco.commerce.myservicemodule.
  5. Copie un archivo wc-component-client.xml existente en la nueva carpeta component-id. El wc-component-client.xml existente se encuentra en el directorio workspace_dir\WC\xml\config\com.ibm.commerce.component-id, donde component-id es el nombre del componente, como catalog o content. Debe editar el archivo copiado para utilizarlo con el servicio de componente.
  6. Seleccione uno de los métodos de enlace siguientes, que se basan en el mecanismo de autenticación que ha elegido:
    OpciónDescripción
    Enlace proxy del cliente de servicio web generado:
    1. Abra Ventana > Preferencias > Servicios web > WebSphere > Generación de código JAX-RPC > WSDL2Java. Seleccione la opción Inhabilitar enlace de datos y utilizar SOAPElement.
    2. Abra el módulo EE Java que utiliza la biblioteca de cliente en el editor del Descriptor de despliegue.
    3. Pulse la pestaña Referencias y añada una referencia de servicio. A continuación, seleccione el botón Siguiente.

      Añadir una referencia de servicio

    4. Seleccione la referencia de servicio y seleccione el botón Finalizar.

      Selección del servicio de referencia, Finalizar

      Esta opción genera el código proxy del cliente para comunicarse con el servicio de HCL Commerce. Este proxy de cliente tiene métodos para cada servicio. Cada método toma un SOAPElement como entrada y devuelve un SOAPElement. Esta opción también genera la configuración de despliegue y la correlación JAX RPC para crear el proxy de cliente.
    5. Pulse la pestaña Manejador de WS y cree un nuevo manejador para la referencia del servicio recién creado. La clase de manejador debería ser com.ibm.commerce.foundation.internal.client.services.invocation.impl.JAXRPCWebServiceProxyHandlerImpl. El propósito de este manejador es incluir información de autorización dentro de la petición SOAP para soporte de usuario registrado e invitado.
    6. Abra el archivo que ha creado en el paso 4 y utilice la clase de proxy generada cambiando para ello la implementación de enlace de invocación a com.ibm.commerce.foundation.internal.client.services.invocation.impl.JAXRPCWebServiceProxyInvocationBindingImpl. Añada un proxy a este elemento de enlace denominado proxyClass con el valor de la clase de proxy generada. Por ejemplo:
      <_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. Utilice la consola administrativa para gestionar el enlace de URL y el valor de seguridad para asociarlo con la configuración de servicio web.

      Gestión del enlace de URL y el valor de seguridad para asociarlo con la configuración de servicio web

    Enlace EJB local

    Cuando el servicio de HCL Commerce y el cliente de dicho servicio están en la misma aplicación. Por motivos de rendimiento, el cliente no debe realizar una solicitud de servicio web a dicha servicio. En cambio, la comunicación del cliente y del componente deben ser locales a la aplicación para evitar solicitudes de servicio innecesarios.

    1. Abra el archivo wc-component-client.xml que ha creado en el paso 4 y cambie el enlace de invocación para utilizar: com.ibm.commerce.foundation.internal.client.services.invocation.impl.LocalEJBInvocationBindingImpl
    2. Añada una propiedad jndiName del enlace para apuntar al nombre global del componente EJB local. Por ejemplo:
      
      <_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. Guarde el archivo.
    4. Despliegue la configuración modificada.
    5. Reinicie el servidor.
    Enlace de servicios web en una aplicación J2SE

    Cuando el cliente del servicio de HCL Commerce se despliega en un entorno J2SE, no hay servicio de denominación para resolver la referencia al servicio web. En su lugar, el enlace de URL del servicio web se define en la configuración de enlace del cliente.

    1. Abra el archivo wc-component-client.xml que ha creado en el paso 4 y cambie el enlace de invocación para utilizar: com.ibm.commerce.foundation.internal.client.services.invocation.impl.J2SEWebServiceInvocationBindingImpl
    2. Añada una propiedad de URL al enlace para especificar el URL donde se puede encontrar el servicio web. Por ejemplo:
      
      <_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. Guarde el archivo.
    4. Despliegue la configuración modificada.
    5. Reinicie el servidor.
    Enlace de servicio utilizando el subsistema de mensajería JCA de HCL Commerce

    Cuando el cliente del servicio se despliega en la aplicación HCL Commerce, la infraestructura de JCA del subsistema de mensajería se puede utilizar para emitir la solicitud de servicio. Con esta configuración, el UI de administración de mensajería existente de la interfaz se puede utilizar para determinar el transporte y el destino del sistema que recibe el mensaje.

    1. Abra el archivo wc-component-client.xml que ha creado en el paso 4 y cambie el enlace de invocación para utilizar: com.ibm.commerce.foundation.internal.client.services.invocation.impl.JCAInvocationBindingImpl
    2. Guarde el archivo.
    3. Despliegue la configuración modificada.
    4. Cree un tipo de mensaje para el ID de componente utilizado para crear una instancia del objeto de servicio de invocación, por ejemplo com.myco.commerce.myservicemodule. Para ello, añada una fila en la tabla MSGTYPES para asignar un nuevo msgtype_id. Utilice un número de ID de tipo de mensaje mayor que 1000. Por ejemplo:
      
      insert into MSGTYPES (MSGTYPE_ID, MSGTDIR, NAME, VIEWNAME,
      DESCRIPTION) 
      VALUES (1001, 1, '
      com.myco.commerce.myservicemodule' , '', 'My Service
      Component' );
      
    5. Asignar un tipo de mensaje a un método de transporte para el sitio o la tienda.
    6. Reinicie el servidor.