Habilitación de destinos de cooperación

La habilitación de destinos de cooperación para portlets Click-to-Action y conectados incluye las actividades siguientes:
  1. Habilitación de destino de cooperación
  2. Implementación de la acción
  3. Traducciones

Para habilitar un destino de cooperación:

  1. Habilite el destino de cooperación, como se describe en los pasos siguientes:
    1. En la vista Explorador de proyectos, seleccione un portlet o el Descriptor de despliegue de portlet. Los portlets se visualizan al ampliar el nodo Descriptor de despliegue de portlet en la carpeta del proyecto portlet.
    2. Pulse en el portlet que desee con el botón derecho del ratón y seleccione Cooperación > Habilitar destino en el menú emergente. Se abre el diálogo Habilitar destino de cooperación. También puede abrir un archivo JSP; asegúrese de que sea el archivo que está activo y seleccione la opción de menú Página > Cooperativo > Habilitar destino.
      Diálogo Habilitar destino de cooperación
    3. Introduzca valores en los campos siguientes:
      Tipo de datos (obligatorio)
      Especifique un nombre de tipo de datos para los datos que va a transferir el portlet de origen. De forma alternativa, si el tipo de datos que desea publicar ya está declarado, pulse el botón Examinar para abrir el diálogo Seleccionar tipo y seleccione el tipo de datos WSDL que desee publicar. El tipo de datos y el espacio de nombres del archivo WSDL se especificarán en cada campo. El valor especificado se utilizará para declarar el tipo de datos en el elemento <types> del archivo WSDL.
      Espacio de nombres
      Especifique el espacio de nombres para el tipo. Por ejemplo, "http:/www.yourco.com/c2a". Cuando se especifica debajo un archivo WSDL existente, el campo queda deshabilitado. El valor especificado se almacenará en un archivo WSDL y se utilizará conjuntamente con el nombre Tipo de datos para identificar exclusivamente el tipo de datos de la propiedad de salida frente al entorno de tiempo de ejecución cooperativo.
      [Acción de destino] Nombre (obligatorio)
      Especifique el nombre de acción del portlet. Este nombre de acción de destino lo utiliza el intermediario de propiedad como destino de ubicación. El intermediario de propiedad, una vez que identifique que la propiedad de entrada del portlet de destino coincide con una propiedad de salida que obtuvo previamente, invocará la acción de destino en el portlet de destino y pondrá el valor de propiedad de entrada a disposición del portlet de destino.

      Si las acciones Faces asociadas a los controles de mandato o las acciones Struts definidas en los archivos de configuración de Struts están disponibles, puede seleccionarlas en el diálogo Seleccionar acción. Para abrir este diálogo, pulse el botón Examinar. El valor especificado se almacenará en el archivo WSDL como atributo de nombre del elemento <portlet:action>.

      Parámetro de nombre (opcional, solo para los portlets JSR 168)
      Especifique el parámetro de nombre de acción del portlet. Cuando el destino de cooperación es un portlet de API JSR 168, el intermediario de propiedad establecerá este parámetro determinado en la petición de acción al invocar el portlet de destino. Es así como el intermediario de propiedad comunica al portlet de destino que se ha producido una invocación y que una propiedad de entrada estará disponible. Del mismo modo, en la lógica de control del portlet de destino, cuando un parámetro de petición esté disponible con este nombre, con un valor que coincida con el valor del campo Parámetro, esto indicará que el intermediario de petición ha realizado una invocación.

      Para los portlets Struts JSR 168, el parámetro de nombre de acción debe especificarse como spf_strutsAction.

      [Parameter] Parámetro (obligatorio)
      Especifique el nombre del parámetro cuyo valor sea la propiedad de entrada de forma que el intermediario de propiedad pueda ponerlo a disposición de los portlets de destino. Este valor se utiliza conjuntamente con el valor del campo Enlazado a que especifica la ubicación del parámetro de forma que el intermediario de propiedad puede determinar de forma precisa cómo recuperar la propiedad de entrada.

      El valor especificado se almacenará en el archivo WSDL como atributo de nombre del elemento <portlet:param>.

      Título (opcional)
      Especifique un título para el parámetro que contiene la propiedad de entrada. Este título lo utiliza la herramienta de conexión para identificar una propiedad de entrada determinada.
      Nota: Este campo toma una clave del paquete compuesto de recursos, tal como se describe a continuación, al contrario que el valor de serie real.
      Enlazado a
      Especifique si el intermediario de propiedad debe poner la propiedad de entrada para ponerla a disposición de los portlets de destino. Este valor se utiliza conjuntamente con el valor del campo Parámetro que especifica el nombre del parámetro de forma que el intermediario de propiedad puede determinar de forma precisa cómo recuperar la propiedad de entrada. Actualmente, este atributo sólo puede especificar uno de los valores siguientes:
      • request-parameter: especifica que el valor está enlazado como parámetro en el objeto PortletRequest. Éste es el valor predeterminado si se ha omitido el atributo boundTo. Tenga en cuenta que para los parámetros de salida normalmente debe especificarse un valor distinto, ya que la implementación PortletRequest predeterminada proporcionada por WebSphere Portal no permite establecer parámetros durante el proceso de acciones.
      • request-attribute: especifica que el valor está enlazado como un atributo en el objeto PortletRequest.
      • session: especifica que el valor está enlazado al objeto PortletSession.
      Etiqueta
      Especifique una cadena de caracteres corta con la acción más adecuada para su visualización en la interfaz de usuario del portlet. Tanto la herramienta de conexión de portlet de WebSphere Portal como el entorno de tiempo de ejecución la utilizan para identificar la acción de destino a invocar. Si este valor se deja en blanco o si el paquete compuesto de recursos no tiene una entrada válida que se corresponda con el valor de clave especificado aquí, la herramienta de conexión y el entorno de tiempo de ejecución Click-to-Action utilizarán en su lugar, por omisión la acción Nombre especificada anteriormente.

      Para títulos traducidos, especifique el nombre de la clave en los paquetes de recursos. Especifique los títulos traducidos en el formato key=título traducido en que aparece en los recursos de paquetes especificados en el campo Paquete de recursos de este diálogo. El valor especificado se almacenará en el archivo WSDL como atributo título del elemento <portlet:action>.

      Ejemplo de herramienta de conexión:

      Ejemplo de Click-to-Action:
      Portlet Click-to-Action que visualiza una etiqueta

      Descripción
      Especifique una descripción de texto de la acción. El valor está documentado en el archivo WSDL.

      Para descripciones traducidas, especifique el nombre de la clave en los paquetes de recursos. Especifique la descripción traducida en el formato key=descripción traducida en que aparece en los paquetes de recursos especificados en el campo Paquete de recursos de este diálogo. El valor especificado se almacenará en el archivo WSDL como atributo de descripción del elemento <portlet:action>.

      Paquete de recursos
      Especifique el nombre base de un archivo de recursos NLS que contenga textos traducidos que correspondan a etiquetas y descripciones de acciones y propiedades.

      El nombre base especificado se definirá mediante el parámetro de configuración c2a-nls-file en el descriptor de despliegue de portlet, y se generará un paquete de recursos vacío bajo el nodo Recursos Java. Por ejemplo, si especifica nls.shippingc2a, editará el paquete de recursos específico de idioma: nls\shippingc2a<_lang>.properties en el nodo JavaSource para especificar títulos y descripciones traducidos en el formato key=texto traducido.

      Portlet de destino (obligatorio)
      Especifique el portlet concreto que debe habilitarse como destino de cooperación.
    4. Pulse Aceptar. El portlet con Click-to-Action habilitado se muestra con un icono de portlet de destino Icono de portlet de destino Click-to-Action) en la vista Explorador de proyectos.
  2. Asegúrese de que el código de la clase de portlet de destino cumpla los requisitos siguientes:
    • La acción se debe implementar como una acción de portlet, de Faces o de Struts. Para las acciones de portlet, deben utilizarse cadenas de acciones sencillas en vez de la clase obsoleta PortletAction.
    • Las acciones de portlet deben aceptar un solo parámetro. El parámetro puede aparecer como un parámetro de petición, una atributo de petición, un atributo de sesión o un atributo de acción (obsoleto), según se especifica en el registro o declaración de acción.

    En el ejemplo siguiente se muestra el método actionPerformed() de OrderDetailPortlet.java en la aplicación Cooperative Portlets de ejemplo de Sample Gallery (Galería de ejemplos). Este portlet acepta el parámetro ORDER_ID en su método actionPerformed(). Este parámetro corresponde a un parámetro de entrada del apartado de enlace (binding) del archivo WSDL del portlet (OrderDetailC2A.wsdl en este ejemplo).

    ...
    
       private static final String PREFIX = "";
       public static final String ORDER_ID = PREFIX + "orderId";
       public static final String TRACKING_ID = PREFIX + "trackingId";
    
    ...
        
        public void actionPerformed (ActionEvent event) 
        {
    //        DefaultPortletAction action = (DefaultPortletAction) event.getAction();
       String actionName = event.getActionString();
    
            PortletRequest request = event.getRequest();
    
            // Una acción hace que se modifique el estado
            ShippingUtils.setLastModified(request);
    
           if( getPortletLog().isDebugEnabled() ) {
               getPortletLog().debug("OrderDetailActionListener - Action called");
           }
           
            if (actionName.equals(ORDER_DETAILS)) {
                request.getPortletSession().setAttribute(ACTION_NAME, ORDER_DETAILS);
                request.getPortletSession().setAttribute(ORDER_ID, request.getParameter(ORDER_ID));
    
           // Esto se hace ya que el ID de seguimiento (tracking id) es un parámetro de salida del archivo C2A WSDL
           // El "tracking id" se escribe en la petición, de forma que puede ser publicado por parte del
           // intermediario en el mismo ciclo de suceso
                String orderId = (String) request.getPortletSession().getAttribute(ORDER_ID);
           OrderDetail od = ShippingDB.getOrderDetail(request.getParameter(ORDER_ID));
                request.getPortletSession().setAttribute(ORDER_DETAIL, od);
           request.setAttribute(TRACKING_ID, od.getTrackingId());
    
            }  else if (actionName.equals(ORDER_ID_ENTRY)) {
                request.getPortletSession().setAttribute(ACTION_NAME, ORDER_ID_ENTRY);
       }
        }
    ...
  3. Es necesario proporcionar un texto traducido que corresponda a la etiqueta y la descripción de los archivos de paquetes de recursos. El nombre base del paquete de recursos se especifica en el campo Paquete de recursos y se almacena mediante el parámetro de configuración c2a-nls-file en el descriptor de despliegue de portlet. Edite los paquetes de recursos específicos de idioma bajo el nodo JavaSource. Para especificar los títulos y las descripciones traducidos, utilice el formato key=texto traducido y las claves especificadas como Etiqueta y Descripción.

La acción Habilitar destino de cooperación realiza automáticamente las tareas siguientes.

  1. Modifica web.xml para añadir una entrada de clase servlet que haga referencia a las clases de intermediario de propiedad [Solo API de portlet de IBM]:
    <servlet-class>com.ibm.wps.pb.wrapper.PortletWrapper</servlet-class>
    <init-param>
       <param-name>c2a-application-portlet-class</param-name>
       <param-value>clase de servlet</param-value>
    </init-param>
  2. Modifica portlet.xml:
    • Para añadir un parámetro de configuración a cada portlet concreto que reciba el intermediario de propiedad de entrada por medio del archivo WSDL y para especificar el nombre base de un archivo de recursos de idioma nacional.
      <config-param>
              	<param-name>c2a-action-descriptor</param-name>
              <param-value>archivo WSDL</param-value>
      </config-param>
      <config-param>
              	<param-name>c2a-nls-file</param-name>
              <param-value>nombre de paquete de recursos</param-value>
      </config-param>
    • Para añadir un parámetro de configuración para que un portlet Faces especifique el nombre de la acción de destino y el nombre de parámetro correspondiente.
  3. Importa una biblioteca adicional, pbportlet.jar, a /WEB-INF/lib en el proyecto portlet para que lo utilice el intermediario de propiedades. [Solo API de portlet de IBM]
  4. Crea un archivo WSDL con los apartados siguientes:
    <definitions>
    Actúa como el directorio raíz.
    <types>
    El tipo de datos se declara utilizando los tipos de datos de esquema XML (XML Schema Datatypes - XSD).
    <message>
    Mensaje de salida
    <portType>
    Define un conjunto de operaciones abstracto. <output>.
    <binding>
    Siempre ampliado a <portlet:binding> para identificar el apartado como una extensión de enlace de cooperación para la invocación de acciones del portlet.
  5. Genera un archivo de paquetes de recursos que incluye el valor key (del formato de texto key=cadena traducida) especificado en el campo Etiqueta del diálogo Habilitar destino de cooperación.
Conceptos relacionados
Desarrollo de portlets de cooperación
Tareas relacionadas
Habilitar cooperación para portlets existentes
Habilitación de orígenes de cooperación
Habilitación de destinos de cooperación sin una acción Faces
Inserción de encodeProperty de Click-to-Action
Inserción de encodeProperties de Click-to-Action
Edición de encodeProperty Click-to-Action
Edición de encodeProperties de Click-to-Action
Referencia relacionada
Web Services Description Language (WSDL) 1.1
Information Center de WebSphere Portal
Esquema XML Parte 2: Tipos de datos

(C) Copyright IBM Corporation 2002, 2005. Reservados todos los derechos.