WebsphereCommerce和ActiveMQ集成
??? 花了三天终于在Websphere commerce 7,实现了和activeMQ的JMS异步通行。
?
??? 业务流程如下:WCS作为前台商店,需要定时的往后台系统异步发送Order的数据。这里JMS Provider采用的是activeMQ(IBM Websphere MQ)买不起啊。其实和Websphere MQ的集成方式类似。
?
??? 记录下整个实现方式:
??? 1、在Websphere application server 管理控制台中配置:
???????点击进入http://localhost:9060/ibm/console/login.do
?????? 资源=》JMS?
??????? a.新建JMS提供程序
???????????? 选择“JMS提供程序”,选择作用域(节点=localhost,服务器=server1),点击“新建”
?????????????
名称ActiveMQ外部初始上下文工厂org.apache.activemq.jndi.ActiveMQWASInitialContextFactory外部提供程序URLtcp://localhost:61616(这是activeMQ默认的连接地址)。?????????
??????? b.然后,点击定制属性。新建
?
名称java.naming.queue.jms.orderProvider值jms/orderProvider类型java.lang.String?
??????? c.新建队列连接工厂?
????????????? 选择“队列连接工厂”,新建,JMS提供程序选择“ActiveMQ”。
?????????????
名称Queue Connection FactoryJNDI名称QueueConnectionFactory外部JNDI名称QueueConnectionFactory?
???????? d.新建队列
??????????????? 选择“队列连接工厂”,新建
?
名称OrderProviderJNDI名称jms/orderProvider外部JNDI名称jms/orderProvider?
??????? 对应资源文件:cells/localhost/nodes/localhost/servers/server1/resources.xml
??????? 保存,重启AppServer.
?
??? 2、进入IBM WebSphere Commerce Administrator Console管理控制台,??选择“站点”?
???????? a.点击“配置”=> “传送”,选择“Websphere MQ”,点击“配置”。
?
?
工厂QueueConnectionFactory入站队列jms/orderProvider错误队列jms/orderProvider错误队列jms/orderProvider????????
??????? 这里我把inbound,outbound,errorbound都通过一个queue发送出去。也可以设置多个队列发送。
?
??????? 对应配置文件,在wc-server.xml中
?
?
?????????
????????? b.配置消息类型
?????????????? 消息类型:可以定制,这里我选择已有功能“WebSphere Commerce XML 订单创建操作的出站消息”
???????????????消息严重性:对应优先级别,1-9
???????????????传输:Websphere MQ
???????????????设备格式:Websphere MQ 适配器 (XML)
?????????????? 错误队列:jms/orderProvider
???????????????工厂:QueueConnectionFactory
?????????????? 入站队列:jms/orderProvider
?????????????? 出站队列:jms/orderProvider
?
?????????????? 对应于表:PROFILE。
?????????????? 这里可以新建消息类型。在MSGTYPES中。定义需要的消息数据。
???????????????
??? 3、新建Command,名为ScheduledOrderProduceCmdImpl
?
?
????这里:
???????????? 10001表示storeId,站点级别设置为0。
?????????????-4 表示设备格式。对应格式所代表的数字如下:
SOAP XML data transmitted via HTTP = -1HTTP Browser = Reserved for IBM Standard Device Format = -3WebSphere MQ Adapter for XML = -4WebSphere MQ Adapter for WCS (Legacy message) = -5??????????
???5、启动acitveMq,调用上面的command,即会已XML格式发送一个orderId=11501的订单信息,到activeMQ broker,consumer即可消费该消息。???