![Deprecated feature](../../base/images/deprecated.png)
Cliente externo
La comunicación de salida se lleva a cabo utilizando el cliente externo de cada servicio.
Configuración del cliente externo
Se ha encontrado una configuración de cliente externo en la siguiente ubicación:
WC\xml\config\ServiceName.external
Por ejemplo, la configuración del cliente del pedido externo se encuentra en el directorio com.ibm.commerce.order.external.Este directorio debe contener un archivo wc-component-client.xml que indique el método de enlace utilizado para realizar solicitudes externas.
Para los clientes externos, el enlace recomendado es JCAInvocationBinding, que utiliza el sistema de mensajería WC y el adaptador de servicio web JCAHttp o el adaptador de servicio web JCAJMS para enviar solicitudes.
Usar un cliente externo
Los siguientes pasos de ejemplo describen cómo usar un cliente externo:
- Escriba el código para hacer una solicitud mediante el cliente externo. Por ejemplo:
// Create the project noun. ProjectType project = ProjectFactory.eINSTANCE.createProjectType(); ProjectIdentifierType projectIdentifier = ProjectFactory.eINSTANCE.createProjectIdentifierType(); projectIdentifier.setUniqueID("theProjectID"); project.setProjectIdentifier(projectIdentifier); // Create the process action expression. String expression = ProjectFacadeConstants.XPATH_PROJECT + "1" + ProjectFacadeConstants.CLOSE_XPATH; List<ActionExpressionType> actionExpressions = new ArrayList(); actionExpressions.add(ExternalProjectFacadeClient.createActionExpression("Transfer", SelectionCriteriaHelper.STR_XPATH_LANG, expression)); // Create the process BOD. ProcessProjectType processProject = ProjectFactory.eINSTANCE.createProcessProjectType(); ProcessProjectDataAreaType projectDataArea = ProjectFactory.eINSTANCE.createProcessProjectDataAreaType(); // Populate the process verb. projectDataArea.setProcess(ExternalProjectFacadeClient.createProcessVerb(actionExpressions)); // Populate the project noun. projectDataArea.getProject().add(project); // Send the external project request. ExternalProjectFacadeClient externalProjectClient = new ExternalProjectFacadeClient(); AcknowledgeProjectType acknowledgeProcess = externalProjectClient.processProject(processProject);
- Configure el cliente externo para utilizar el enlace JCA. Por ejemplo:
- Cree un directorio de configuración para el cliente externo. Por ejemplo, \xml\config\com.mycompany.commerce.project.external.
- Cree un archivo wc-component-client.xml en el directorio configurado para el enlace JCA. Por ejemplo:
<_config:DevelopmentClientConfiguration xmlns:_config="http://www.ibm.com/xmlns/prod/commerce/foundation/config" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.ibm.com/xmlns/prod/commerce/foundation/config ../xsd/wc-component-client.xsd"> <_config:invocationservice> <_config:invocationbinding bindingImpl="com.ibm.commerce.foundation.internal.client.services.invocation.impl.JCAInvocationBindingImpl"> </_config:invocationbinding> </_config:invocationservice> </_config:DevelopmentClientConfiguration>
- Configure el transporte y el destino dentro del sistema de mensajería de WC. Por ejemplo:
- Añada un nuevo tipo de mensaje para las peticiones de servicio externas (SQL).El ejemplo siguiente crea un tipo de mensaje com.mycompany.commerce.project.external:
- Conéctese a la base de datos.
- Ejecute la siguiente consulta:
insert into msgtypes (msgtype_id, msgtdir, name, viewname, description) values (1010, 1, 'com.mycompany.commerce.project.external', ' ', 'External Project Service');
- Configure el transporte y el destino del nuevo tipo de mensaje.Nota: El adaptador de servicio web HTTP debe estar habilitado.
- Abra la Consola de administración.
- Seleccione .
- Haga clic en Nuevo.
- Seleccione el nuevo tipo de mensaje: Por ejemplo, com.mycompany.commerce.project.external.
Transporte: WebServices (HTTP)
Formato de dispositivo: Servicios web
- Haga clic en Siguiente.
- Añada el URL de destino y el nombre de usuario y la contraseña si es necesario.
- Haga clic en Finalizar.
- Añada un nuevo tipo de mensaje para las peticiones de servicio externas (SQL).
- A continuación, se muestra una solicitud de salida de ejemplo de WC, mediante el fragmento de código del paso 1:
<myprj:ProcessProject releaseID="9.0" versionID="7.0.0.0" xmlns:_wcf="http://www.ibm.com/xmlns/prod/commerce/9/foundation" xmlns:myprj="http://www.mycompany.com/xmlns/prod/commerce/9/project" xmlns:oa="http://www.openapplications.org/oagis/9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <oa:ApplicationArea xsi:type="_wcf:ApplicationAreaType"> <oa:CreationDateTime>2009-10-23T20:07:15.156Z</oa:CreationDateTime> <oa:BODID>a8688c80-c00f-11de-b7b8-829b4ae20b43</oa:BODID> <_wcf:BusinessContext/> </oa:ApplicationArea> <myprj:DataArea> <oa:Process> <oa:ActionCriteria> <oa:ActionExpression actionCode="Transfer" expressionLanguage="_wcf:XPath">/Project[1]</oa:ActionExpression> </oa:ActionCriteria> </oa:Process> <myprj:Project> <myprj:ProjectIdentifier> <myprj:UniqueID>theProjectID</myprj:UniqueID> </myprj:ProjectIdentifier> </myprj:Project> </myprj:DataArea> </myprj:ProcessProject>