Ajout de mappeurs de messages
Pour ajouter un nouveau mappeur de messages, vous devez l'ajouter manuellement au groupe de mappeurs de messages du fichier de configuration HCL Commerce.
Procédure
- Ouvrez le fichier de configuration HCL Commerce.
- Localisez l'élément MessageMapperGroup.
- Définissez votre mappeur de messages, ajoutez un élément MessageMapper en tant qu'élément enfant à l'élément 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>Où :
- messageMapperId
- Un entier de -100 à -9999. Il doit être unique dans le
MessageMapperGroup. - classname
- Nom de la classe implémentant l'interface
MesssageMapper. Par exemple, com.ibm.commerce.messaging.programadapter.messagemapper.ecsax.ECSAXMessageMapper.
Notes :- Si vous ne définissez pas
EcSystemTemplateFileetEcUserTemplateFiledans<MessageMapper>, les valeurs de message par défaut sont utilisées. Les valeurs par défaut -EcSystemTemplateFileetEcUserTemplateFile- sont situées dans l'élément de HCL Commerce fichier de configuration<Messaging>. SiEcSystemTemplateFile,EcUserTemplateFileou les deux sont définis, les valeurs par défaut<Messaging>ne sont pas utilisées. - Si
EcInboundMessageDtdPathetEcInboundMessageDtdFilesne sont pas spécifiés dans<MessageMapper>, les valeurs par défaut sont utilisées. Les valeurs par défaut se trouvent dans l'élément de HCL Commerce fichier de configuration<Messaging>. SiEcInboundMessageDtdPath,EcInboundMessageDtdFilesou les deux sont définis, les valeurs par défaut<Messaging>ne sont pas utilisées. - Si
EcSystemTemplateFileouEcUserTemplateFilecontiennent une valeur vide (par exempleEcSystemTemplateFile="") une exception NullPointerException est lancée.
Pour le mappeur WCS.INTEGRATION, le paramètre isValidating est défini sur "true" par défaut et 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". Cette configuration empêche l'analyseur syntaxique XML d'analyser des entités générales externes et des entités de paramètre externes.
- Dans l'élément
<configuration>, ajoutez tous les attributs de configuration supplémentaires dont le mappeur de messages a besoin. Il est converti en objet TypedProperty et passe à la méthode init du mappeur de messages.Remarque : Afin de faire fonctionner correctement vos mappeurs de messages, assurez-vous que vous utilisez le nom de classe d'implémentation plus récent de l'analyseur XML, EcSaxParserClass="org.apache.xerces.parsers.SAXParser". - Ajoutez ce nom de mappeur de messages à la liste des noms de mappeur de messages dans l'attribut "supportedMessageMappers" de l'élément de configuration de l'adaptateur de programme cible, comme décrit dans Configuration de l'adaptateur de programme.