请求指导:用WSO2集成流实现ActiveMQ队列消费并生成CAR包部署
用WSO2 EI 7.1.0中介器流实现ActiveMQ SumResult队列消费(可生成CAR包部署)
前置准备
- 确保WSO2 Integration Studio 8.0已配置EI 7.1.0运行环境
- 下载ActiveMQ的
activemq-client-x.x.x.jar和geronimo-jms_2.0_spec-x.x.x.jar,放到EI的<EI_HOME>/lib目录,同时在Integration Studio的项目依赖中添加这两个包
步骤1:创建集成项目与代理服务
- 打开WSO2 Integration Studio,新建Integration Project,命名为
ActiveMQ-SumResult-Consumer - 在项目内新建Proxy Service,选择Custom Proxy,命名为
SumResultQueueConsumerProxy
步骤2:配置JMS端点(连接ActiveMQ)
- 在代理服务的设计视图,点击Add Endpoint,选择JMS Endpoint
- 填写核心配置参数:
- Connection Factory: 输入
QueueConnectionFactory(对应ActiveMQ默认队列连接工厂) - Destination: 输入
SumResult(目标队列名称) - JMS Provider URL: 输入
tcp://<ActiveMQ_IP>:61616(替换为你的ActiveMQ地址与端口) - Username/Password: 填写ActiveMQ认证信息(若开启了认证)
- Connection Factory: 输入
- 保存端点,命名为
SumResultQueueEndpoint
步骤3:构建中介器消费流
- 回到代理服务设计视图,将上述端点设置为Inbound Endpoint(队列消费属于入站流)
- 添加中介器处理消息:
- 若需打印接收结果,添加Log Mediator,日志级别设为
INFO,日志内容填Received sum result: $body - 若需后续业务处理(如存储到数据库、转发至其他服务),可添加Call Mediator或DB Mediator等
- 若需打印接收结果,添加Log Mediator,日志级别设为
- 示例完整流配置(XML):
<?xml version="1.0" encoding="UTF-8"?> <proxy name="SumResultQueueConsumerProxy" startOnLoad="true" transports="jms" xmlns="http://ws.apache.org/ns/synapse"> <target> <inSequence> <log level="custom"> <property name="STATUS" value="Successfully received sum result from ActiveMQ"/> <property name="SUM_RESULT" expression="$body"/> </log> <!-- 此处可添加后续业务逻辑,比如转发至其他服务 --> <respond/> </inSequence> <outSequence/> <faultSequence> <log level="custom"> <property name="ERROR" value="Failed to process sum result message"/> <property name="ERROR_DETAILS" expression="$ctx:ERROR_MESSAGE"/> </log> </faultSequence> </target> <parameter name="transport.jms.ContentType"> <rules> <jmsProperty>contentType</jmsProperty> <default>text/plain</default> </rules> </parameter> <parameter name="transport.jms.ConnectionFactory">QueueConnectionFactory</parameter> <parameter name="transport.jms.Destination">SumResult</parameter> </proxy>
步骤4:配置EI的JMS连接
- 打开EI的
<EI_HOME>/conf/deployment.toml,添加ActiveMQ连接配置:[[transport.jms.listener]] name = "QueueConnectionFactory" parameter.initial_naming_factory = "org.apache.activemq.jndi.ActiveMQInitialContextFactory" parameter.provider_url = "tcp://<ActiveMQ_IP>:61616" parameter.connection_factory_name = "QueueConnectionFactory" parameter.connection_factory_type = "queue" # 若ActiveMQ开启认证,取消下方注释并填写信息 # parameter.username = "admin" # parameter.password = "admin"
步骤5:生成CAR包并部署
- 在Integration Studio中,右键点击集成项目,选择New -> Composite Application Project
- 命名为
ActiveMQ-SumResult-Consumer-CAR,将之前创建的代理服务与端点添加到该复合应用中 - 右键点击复合应用项目,选择Export Composite Application Project,生成CAR包
- 将CAR包放入EI的
<EI_HOME>/repository/deployment/server/carbonapps目录,EI会自动完成部署
功能验证
- 启动ActiveMQ与EI服务
- 用你的Spring TS Web服务发送求和结果到SumResult队列
- 查看EI日志(
<EI_HOME>/repository/logs/wso2carbon.log),可看到打印的求和结果信息
内容的提问来源于stack exchange,提问作者Jesus Red
相关产品推荐
相关产品推荐

