Habilitación de biblioteca de cliente para Struts
La acción de servicio de componentes de Struts es una clase de implementación de acción de Struts que se puede utilizar para invocar un servicio de componentes desde una aplicación web tradicional. La acción de servicio del componente de Struts es una subclase de com.ibm.commerce.struts.BaseAction
. Esta acción de servicio prevalece sobre el método de invokeService(). La nueva implementación de invokeService() pasa la correlación de parámetros de entrada a un método de biblioteca de cliente configurada que llevará a cabo un servicio y devolverá una correlación de parámetros de salida.
Después de completar la petición, el comportamiento predeterminado de la acción de servicio será redireccionar al URL especificado mediante el parámetro redirecturl
o el parámetro de entrada de URL. Esto se lleva a cabo añadiendo RedirectView
como valor de un parámetro de salida llamado viewTaskName
antes de devolver la correlación de salida al final del método invokeService(). Esto hace que la implementación de la acción base invoque el mandato RedirectView.
La implementación de la acción de servicio de componentes de Struts tiene el siguiente nombre de clase:
com.ibm.commerce.struts.ComponentServiceAction
com.ibm.commerce.struts.v2.ComponentServiceAction
Una nueva implementación de la acción de Struts proporciona acceso a los métodos de módulos de servicio fáciles de usar de la web. Se recomienda crear un nuevo archivo de configuración de Struts para cada módulo de servicio.
Por ejemplo, cree un archivo denominado struts-config-myservicemodule.xml en el directorio de WEB-INF.
<include file="struts-wcs-webapplication-myservicemodule.xml"></include>
Los archivos de entrada de configuración de los struts para cada aplicación web son: - CommerceAccelerator
- CommerceAccelerator\WEB-INF\classes\struts-accelerator.xml
- OrganizationAdministration
- OrganizationAdministration\WEB-INF\classes\struts-orgadmin.xml
- SiteAdministration
- SiteAdministration\WEB-INF\classes\struts-siteadmin.xml
- Stores
- Stores\WEB-INF\classes\struts-stores.xml
Plug-in de servicio de cliente de Struts
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software
Foundation//DTD Struts Configuration 1.1//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-config>
<!-- Data Sources -->
<data-sources>
</data-sources>
<!-- Form Beans -->
<form-beans>
</form-beans>
<!-- Global Exceptions -->
<global-exceptions>
</global-exceptions>
<!-- Global Forwards -->
<global-forwards>
<forward className="com.ibm.commerce.struts.ECActionForward"
name="Example" path="/Example.jsp"/>
</global-forwards>
<!-- Action Mappings -->
<action-mappings
type="com.ibm.commerce.struts.ECActionMapping">
<!-- Struts Service Module Action Test
Run a webfriendly method from MyServiceModule -->
<action
parameter="myservicemodule.webfriendlymethod"
path="/Example"
type="com.ibm.commerce.struts.ComponentServiceAction">
<set-property property="authenticate" value="0:0"/>
<set-property property="https" value="0:1"/>
</action>
</action-mappings>
<!-- Define the MyServiceModule client facade -->
<plug-in className="com.ibm.commerce.struts.ComponentPlugIn">
<set-property property="componentId"
value="myservicemodule"/>
<set-property property="clientFacadeClassName"
value="com.mycompany.commerce.myservicemodule.facade.client.MyServiceModuleFacadeClient"/>
</plug-in>
</struts-config>
El atributo parameter
define la biblioteca de cliente que se va a utilizar. El parámetro clientMethod
define el método de biblioteca del cliente.<?xml version="1.0" encoding="UTF-8"?>
<ComponentPlugins> <!-- Define the MyServiceModule client facade -->
<plug-in className="com.ibm.commerce.struts.ComponentPlugIn" componentId="myservicemodule"
clientFacadeClassName="com.mycompany.commerce.myservicemodule.facade.client.MyServiceModuleFacadeClient"/>
</ComponentPlugins>
El ejemplo siguiente proporciona un ejemplo de la correlación de acciones en los archivos de configuración de los struts:<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN" "http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
<package extends="wcs-stores" name="my-services" namespace="/">
<action class="com.ibm.commerce.struts.v2.ComponentServiceAction" name="Example">
<param name="authenticate">0:0</param>
<param name="https">0:1</param>
<param name="parameter">myservicemodule.webfriendlymethod</param>
</action>
</package>
</struts>
El parámetro de acción de parámetro define la biblioteca de cliente que se va a utilizar y el método que se va a llamar. Habilitación de biblioteca de cliente para AJAX
La acción de servicio de componentes Ajax de Struts es una clase de implementación de acción de Struts que puede utilizarse para invocar un servicio de HCL Commerce utilizando una petición de navegador de estilo Ajax. Todos los servicios habilitados para URL están habilitados para el soporte de AJAX y sólo es necesario configurarlos.
La acción de servicio de componente de Ajax de Struts es una subclase de:
com.ibm.commerce.struts.BaseAction
com.ibm.commerce.struts.v2.BaseAction
Esta acción prevalece sobre el método de invokeService
. La nueva implementación de invokeService
pasa la correlación de parámetros de entrada a un método de biblioteca de cliente configurada que llama a un servicio y devuelve una correlación de parámetro de salida.
Una vez que la petición se ha completado, ésta se reenvía a un archivo JSP que crea la respuesta de servicio. El archivo JSP de respuesta de servicio crea un objeto JSON a partir de los valores encontrados en la correlación de respuestas.
La acción de servicio de componentes de Struts tiene el siguiente nombre de clase:
com.ibm.commerce.struts.AjaxComponentServiceAction
com.ibm.commerce.struts.v2.AjaxComponentServiceAction
Una acción de Struts que utiliza la implementación de acción de servicio de componentes Ajax se configura en struts-config.xml tal como se muestra en el siguiente ejemplo XML:
<action
parameter="com.ibm.commerce.catalog.facade.client.CatalogFacadeClient"
path="/AjaxChangeProduct"
type="com.ibm.commerce.struts.AjaxComponentServiceAction">
<set-property property="clientMethod"
value="changeProduct"/>
</action>
El atributo de parameterd define la biblioteca de cliente que se va a utilizar. El parámetro clientMethod define el método de biblioteca del cliente.<action class="com.ibm.commerce.struts.v2.AjaxComponentServiceAction" name="AjaxPersonChangeServiceAddressAdd">
<param name="authenticate">0:0</param>
<param name="https">0:1</param>
<param name="parameter">member.addAddressForPerson</param>
</action>
<action
El parámetro de acción parameter define la biblioteca cliente que se va a utilizar y el método que se va a llamar.