WebSphere Commerce 允许您扩展 WebSphere Commerce MQ 侦听器(以前称作传送适配器)以处理附加消息。这包含执行以下操作:
- 创建消息的 XML 模板。
- 将消息映射到控制器命令。
要执行此操作,您需要有关 XML 和 WebSphere Commerce 控制器命令的高级知识。如果您的消息需要创建新的控制器命令,则还需具有对 WebSphere Commerce 数据库模式和 Java 编程较深入的了解。
要添加消息,请执行以下操作:
- 创建用于分析入站消息的 DTD 文件,并将其放置在 WC_installdir/xml/messaging 中。
- 将其添加到 INSTANCE_name.xml 文件中的消息传定属性 ECInboundMessageDtdFiles 的标记中:
EcInboundMessageDtdPath="E:\WebSphere\CommerceServer55\xml\messaging" EcMimePropFile="lang_mime.data" EcSystemTemplateFile="sys_template.xml" EcTemplatePath="E:\WebSphere\CommerceServer55\xml\messaging" EcUserTemplateFile="user_template.xml" XMLWebControllerUserId="wcsadmin" />
- 创建一个映射文件以将消息内容映射到用户消息模板文件中的命令名以及所需参数。初始模板可以在 WC_installdir/xml/messaging/user_template.xml 中找到。
要添加新消息,请继续以下操作:
- 创建新的控制器命令(接口和实现)以执行所需的商务逻辑。
- 在 URLREG 表中添加一行,并用正确的接口名指定 URL 名称。
- 如果您正在覆盖现有的命令实现,请添加或更新 CMDREG 表中相应的行,并将正确的类名映射指定给正确的接口名。
- 重新启动 WebSphere Commerce。
以下是您可以遵循的样本:
样本消息:
<?xml version='1.0' encoding='UTF-8'?><!DOCTYPE Update_New_Message SYSTEM 'Update_New_Message.dtd'> <Update_First_Element version='1.0'> <DataArea> <ABC>123456</ABC> </DataArea> </Update_First_Element>
样本 DTD 文件:
<!ELEMENT Update_First_Element (DataArea)> <!ATTLIST Update_First_Element version CDATA #FIXED "1.0"> <!ELEMENT DataArea (ABC)> <!ELEMENT ABC (#PCDATA)>
样本 user_template.xml:
<?xml version='1.0' encoding='UTF-8'?><!DOCTYPE ECTemplate SYSTEM 'ec_template.dtd' ><ECTemplate><TemplateDocument> <DocumentType version='1.0'>Update_New_Message</DocumentType> <StartElement>Update_First_Element</StartElement> <TemplateTagName>NewMessageMap</TemplateTagName> <CommandMapping> <Command CommandName='NewCommand' /> </CommandMapping> </TemplateDocument> <TemplateTag name='NewMessageMap'> <Tag XPath='DataArea/ABC' Field='ABC_id' /> </TemplateTag> </ECTemplate>