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
EcSystemTemplateFile
yEcUserTemplateFile
en<MessageMapper>
, se utilizan los valores de mensaje predeterminados. Los valores predeterminados (EcSystemTemplateFile
yEcUserTemplateFile
) 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
EcInboundMessageDtdPath
yEcInboundMessageDtdFiles
en<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
EcSystemTemplateFile
oEcUserTemplateFile
contienen 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.