Añadir correlacionadores de mensajes
Para añadir un nuevo correlacionador de mensajes, debe añadirlo manualmente al grupo de correlacionadores de mensajes en el archivo de configuración de HCL Commerce.
Procedimiento
- Abra el archivo de configuración de HCL Commerce.
- Localice el elemento MessageMapperGroup.
- Defina el correlacionador de mensajes y añada un elemento MessageMapper como elemento hijo del elemento MessageMapperGroup.
<component compClassName="com.ibm.commerce.programadapter.messagemapper.MessageMapperGroup" enable="true" name="MessageMapperGroup"> <property display="false"> <MessageMapper messageMapperId="new mapper id" classname="class implementing MessageMapper interface" enable="true" name="Name of Message Mapper"> <configuration EcSystemTemplateFile="my-component-services-system-template.xml" EcUserTemplateFile="my-component-services-user-template.xml" EcInboundMessageDtdFiles="something.dtd" EcTemplatePath="some_dir" EcSaxParserClass="org.apache.xerces.parsers.SAXParser" EcInboundMessageDtdPath="some_dir" isValidating="false" DebugMode="FALSE" EmptyElementClearsData="FALSE"/> </MessageMapper>Donde:
- messageMapperId
- Un entero comprendido entre -100 y -9999. Debe ser exclusivo en el
MessageMapperGroup. - classname
- El nombre de la clase que implementa la interfaz
MesssageMapper. Por ejemplo, com.ibm.commerce.messaging.programadapter.messagemapper.ecsax.ECSAXMessageMapper.
Notes:- Si no define
EcSystemTemplateFileyEcUserTemplateFileen<MessageMapper>, se utilizan los valores de mensaje predeterminados. Los valores predeterminados (EcSystemTemplateFileyEcUserTemplateFile) se encuentran en el elemento HCL Commercearchivo de configuración<Messaging>. Si se definenEcSystemTemplateFile,EcUserTemplateFile, o ambos, no se utilizan los valores predeterminados<Messaging>. - Si no se especifican
EcInboundMessageDtdPathyEcInboundMessageDtdFilesen<MessageMapper>, se utilizan los valores predeterminados. Los valores predeterminados se encuentran en el elemento HCL Commercearchivo de configuración<Messaging>. Si se definenEcInboundMessageDtdPath,EcInboundMessageDtdFiles, o ambos, no se utilizan los valores predeterminados<Messaging>. - Si
EcSystemTemplateFileoEcUserTemplateFilecontienen un valor vacío (por ejemplo,EcSystemTemplateFile=""), se emite una expresión NullPointerException.
Para el correlacionador WCS.INTEGRATION, el parámetro isValidating se establece en "true" de forma predeterminada y ParserFeatureList="http://apache.org/xml/features/nonvalidating/load-external-dtd=false,http://xml.org/sax/features/external-general-entities=false,http://xml.org/sax/features/external-parameter-entities=false". Esta configuración impide que el analizador de XML analice entidades generales externas y entidades de parámetros externos.
- Dentro del elemento
<configuration>, añada todos los atributos de configuración adicionales que necesita el correlacionador de mensajes. Esto se convierte en un objeto TypedProperty y se pasa al método init del correlacionador de mensajes.Nota: Para que los correlacionadores de mensajes funcionen correctamente, asegúrese de que está utilizando el nombre de clase de implementación más reciente del analizador XML, EcSaxParserClass="org.apache.xerces.parsers.SAXParser". - Añada este nombre de correlacionador de mensajes a la lista de nombres de correlacionadores de mensajes en el atributo "supportedMessageMappers" del elemento de configuración del adaptador del programa de destino, como se describe en Configurar el adaptador de programa.