Para habilitar un origen de cooperación, realice los pasos siguientes.
También es posible utilizar este atributo, sin utilizar la interfaz Click-to-Action proporcionada, al habilitar el portlet de origen.
En el ejemplo siguiente se muestra el método actionPerformed() de OrderDetailPortlet.java en la aplicación Portlets de cooperación de ejemplo de Sample Gallery (Galería de ejemplos). El portlet pasa el parámetro TRACKING_ID al intermediario de propiedad en su método actionPerformed(). Este parámetro corresponde a un parámetro de salida en el apartado de enlace del archivo WSDL del portlet ( OrderDetail.wsdl, en este ejemplo).
OrderDetailPortlet.java ... private static final String PREFIX = ""; //$NON-NLS-1$ public static final String ACTION_NAME = PREFIX + "actionName"; //$NON-NLS-1$ public static final String ORDER_DETAILS = PREFIX + "orderDetails"; //$NON-NLS-1$ public static final String ORDER_ID_ENTRY = PREFIX + "orderIdEntry"; //$NON-NLS-1$ public static final String ORDER_ID = PREFIX + "orderId"; //$NON-NLS-1$ public static final String ORDER_DETAIL_BEAN = PREFIX + "orderDetailBean"; //$NON-NLS-1$ public static final String ORDER_DETAIL = PREFIX + "orderDetail"; //$NON-NLS-1$ public static final String TRACKING_ID = PREFIX + "trackingId"; //$NON-NLS-1$ ... public void actionPerformed(ActionEvent event) { String actionName = event.getActionString(); PortletRequest request = event.getRequest(); //Una acción provoca que se modifique el estado ShippingUtils.setLastModified(request); if (getPortletLog().isDebugEnabled()) { getPortletLog().debug(Messages.getString("OrderDetailPortlet_action_entry")); //$NON-NLS-1$ } 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 el intermediario * puede publicarlo en el mismo ciclo de suceso */ 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); } } ...
... <binding name="OrderDetailBinding" type="tns:OrderDetail_Service"> <portlet:binding></portlet:binding> <operation name="order_Detail"> <portlet:action name="orderDetails" type="simple" caption="Order.Details" description="Get.details.for.specified.order.id"/> <input> <portlet:param name="orderId" partname="order_Id" caption="order.id"/> </input> <output> <portlet:param name="trackingId" partname="tracking_Id" boundTo="request-attribute" caption="tracking.id"/> </output> </operation> </binding> ...
La acción Habilitar destino de cooperación realiza automáticamente las tareas siguientes:
<servlet-class>com.ibm.wps.pb.wrapper.PortletWrapper</servlet-class> <init-param> <param-name>c2a-application-portlet-class</param-name> <param-value>servlet-class</param-value> </init-param>
<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>
Conceptos relacionados
Desarrollo de portlets de cooperación
Tareas relacionadas
Habilitar cooperación para portlets existentes
Habilitación de orígenes de cooperación con una acción Faces
Habilitación de destinos de cooperación
Inserción de encodeProperty Click-to-Action
Inserción de encodeProperties Click-to-Action
Edición de encodeProperty Click-to-Action
Edición de encodeProperties Click-to-Action
Referencia relacionada
Web
Services Description Language (WSDL) 1.1
Information Center de WebSphere Portal
Esquema XML Parte 2: Tipos de datos