找回密码
 立即注册
首页 业界区 业界 AEM 与 ActiveMQ 集成方案详解

AEM 与 ActiveMQ 集成方案详解

嘀荼酴 2025-9-25 11:01:23
Adobe Experience Manager (AEM) 与 ActiveMQ 的集成可实现系统间的解耦和异步通信,以下是详细的集成步骤与代码实现:一、环境准备


  • AEM 环境:AEM 6.5+ 或 AEM as a Cloud Service
  • ActiveMQ:版本 5.15+(推荐 5.17.x)
  • Maven 项目:用于开发 AEM 组件和配置
二、ActiveMQ 配置

1. 启用 JMS 连接

修改 ActiveMQ 的 conf/activemq.xml,确保支持 OpenWire 协议:
  1. <transportConnectors>
  2. <persistenceAdapter>
  3.     <kahaDB directory="${activemq.data}/kahadb"/>
  4. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  5. </transportConnectors>
复制代码
2. 创建 JMS 用户(可选)

修改 conf/users.properties 添加专用用户:
  1. jmsuser=jms password,users
复制代码
三、AEM 集成步骤

1. 添加 ActiveMQ 依赖

在 AEM 项目的 pom.xml 中添加依赖:
  1. <transportConnectors>
  2. <persistenceAdapter>
  3.     <kahaDB directory="${activemq.data}/kahadb"/>
  4. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  5. </transportConnectors>org.apache.activemq<transportConnectors>
  6. <persistenceAdapter>
  7.     <kahaDB directory="${activemq.data}/kahadb"/>
  8. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  9. </transportConnectors>activemq-client<transportConnectors>
  10. <persistenceAdapter>
  11.     <kahaDB directory="${activemq.data}/kahadb"/>
  12. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  13. </transportConnectors>5.17.10<transportConnectors>
  14. <persistenceAdapter>
  15.     <kahaDB directory="${activemq.data}/kahadb"/>
  16. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  17. </transportConnectors>org.slf4j<transportConnectors>
  18. <persistenceAdapter>
  19.     <kahaDB directory="${activemq.data}/kahadb"/>
  20. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  21. </transportConnectors>slf4j-api<transportConnectors>
  22. <persistenceAdapter>
  23.     <kahaDB directory="${activemq.data}/kahadb"/>
  24. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  25. </transportConnectors>1.7.36
复制代码
2. 创建 OSGi 配置

定义 ActiveMQ 连接工厂配置:
  1. import org.osgi.service.metatype.annotations.AttributeDefinition;import org.osgi.service.metatype.annotations.ObjectClassDefinition;@ObjectClassDefinition(name = "ActiveMQ Connection Factory Configuration")public @interface ActiveMQConfig {<transportConnectors>
  2. <persistenceAdapter>
  3.     <kahaDB directory="${activemq.data}/kahadb"/>
  4. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  5. </transportConnectors>@AttributeDefinition(name = "Broker URL", description = "ActiveMQ Broker URL")<transportConnectors>
  6. <persistenceAdapter>
  7.     <kahaDB directory="${activemq.data}/kahadb"/>
  8. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  9. </transportConnectors>String brokerUrl() default "tcp://localhost:61616";<transportConnectors>
  10. <persistenceAdapter>
  11.     <kahaDB directory="${activemq.data}/kahadb"/>
  12. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  13. </transportConnectors><transportConnectors>
  14. <persistenceAdapter>
  15.     <kahaDB directory="${activemq.data}/kahadb"/>
  16. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  17. </transportConnectors>@AttributeDefinition(name = "Username", description = "ActiveMQ Username")<transportConnectors>
  18. <persistenceAdapter>
  19.     <kahaDB directory="${activemq.data}/kahadb"/>
  20. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  21. </transportConnectors>String username() default "admin";<transportConnectors>
  22. <persistenceAdapter>
  23.     <kahaDB directory="${activemq.data}/kahadb"/>
  24. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  25. </transportConnectors><transportConnectors>
  26. <persistenceAdapter>
  27.     <kahaDB directory="${activemq.data}/kahadb"/>
  28. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  29. </transportConnectors>@AttributeDefinition(name = "Password", description = "ActiveMQ Password")<transportConnectors>
  30. <persistenceAdapter>
  31.     <kahaDB directory="${activemq.data}/kahadb"/>
  32. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  33. </transportConnectors>String password() default "admin";}
复制代码
3. 实现 JMS 连接工厂服务
  1. import javax.jms.ConnectionFactory;import org.apache.activemq.ActiveMQConnectionFactory;import org.osgi.service.component.annotations.Activate;import org.osgi.service.component.annotations.Component;import org.osgi.service.component.annotations.Modified;import org.osgi.service.metatype.annotations.Designate;@Component(service = ActiveMQService.class, immediate = true)@Designate(ocd = ActiveMQConfig.class)public class ActiveMQService {<transportConnectors>
  2. <persistenceAdapter>
  3.     <kahaDB directory="${activemq.data}/kahadb"/>
  4. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  5. </transportConnectors>private ConnectionFactory connectionFactory;<transportConnectors>
  6. <persistenceAdapter>
  7.     <kahaDB directory="${activemq.data}/kahadb"/>
  8. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  9. </transportConnectors>private ActiveMQConfig config;<transportConnectors>
  10. <persistenceAdapter>
  11.     <kahaDB directory="${activemq.data}/kahadb"/>
  12. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  13. </transportConnectors>@Activate<transportConnectors>
  14. <persistenceAdapter>
  15.     <kahaDB directory="${activemq.data}/kahadb"/>
  16. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  17. </transportConnectors>@Modified<transportConnectors>
  18. <persistenceAdapter>
  19.     <kahaDB directory="${activemq.data}/kahadb"/>
  20. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  21. </transportConnectors>protected void activate(ActiveMQConfig config) {<transportConnectors>
  22. <persistenceAdapter>
  23.     <kahaDB directory="${activemq.data}/kahadb"/>
  24. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  25. </transportConnectors><transportConnectors>
  26. <persistenceAdapter>
  27.     <kahaDB directory="${activemq.data}/kahadb"/>
  28. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  29. </transportConnectors>this.config = config;<transportConnectors>
  30. <persistenceAdapter>
  31.     <kahaDB directory="${activemq.data}/kahadb"/>
  32. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  33. </transportConnectors><transportConnectors>
  34. <persistenceAdapter>
  35.     <kahaDB directory="${activemq.data}/kahadb"/>
  36. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  37. </transportConnectors>initConnectionFactory();<transportConnectors>
  38. <persistenceAdapter>
  39.     <kahaDB directory="${activemq.data}/kahadb"/>
  40. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  41. </transportConnectors>}<transportConnectors>
  42. <persistenceAdapter>
  43.     <kahaDB directory="${activemq.data}/kahadb"/>
  44. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  45. </transportConnectors>private void initConnectionFactory() {<transportConnectors>
  46. <persistenceAdapter>
  47.     <kahaDB directory="${activemq.data}/kahadb"/>
  48. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  49. </transportConnectors><transportConnectors>
  50. <persistenceAdapter>
  51.     <kahaDB directory="${activemq.data}/kahadb"/>
  52. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  53. </transportConnectors>ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory(<transportConnectors>
  54. <persistenceAdapter>
  55.     <kahaDB directory="${activemq.data}/kahadb"/>
  56. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  57. </transportConnectors><transportConnectors>
  58. <persistenceAdapter>
  59.     <kahaDB directory="${activemq.data}/kahadb"/>
  60. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  61. </transportConnectors><transportConnectors>
  62. <persistenceAdapter>
  63.     <kahaDB directory="${activemq.data}/kahadb"/>
  64. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  65. </transportConnectors>config.username(),<transportConnectors>
  66. <persistenceAdapter>
  67.     <kahaDB directory="${activemq.data}/kahadb"/>
  68. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  69. </transportConnectors><transportConnectors>
  70. <persistenceAdapter>
  71.     <kahaDB directory="${activemq.data}/kahadb"/>
  72. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  73. </transportConnectors><transportConnectors>
  74. <persistenceAdapter>
  75.     <kahaDB directory="${activemq.data}/kahadb"/>
  76. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  77. </transportConnectors> config.password(),<transportConnectors>
  78. <persistenceAdapter>
  79.     <kahaDB directory="${activemq.data}/kahadb"/>
  80. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  81. </transportConnectors><transportConnectors>
  82. <persistenceAdapter>
  83.     <kahaDB directory="${activemq.data}/kahadb"/>
  84. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  85. </transportConnectors><transportConnectors>
  86. <persistenceAdapter>
  87.     <kahaDB directory="${activemq.data}/kahadb"/>
  88. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  89. </transportConnectors> config.brokerUrl()<transportConnectors>
  90. <persistenceAdapter>
  91.     <kahaDB directory="${activemq.data}/kahadb"/>
  92. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  93. </transportConnectors><transportConnectors>
  94. <persistenceAdapter>
  95.     <kahaDB directory="${activemq.data}/kahadb"/>
  96. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  97. </transportConnectors>);<transportConnectors>
  98. <persistenceAdapter>
  99.     <kahaDB directory="${activemq.data}/kahadb"/>
  100. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  101. </transportConnectors><transportConnectors>
  102. <persistenceAdapter>
  103.     <kahaDB directory="${activemq.data}/kahadb"/>
  104. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  105. </transportConnectors>// 配置选项(可选)<transportConnectors>
  106. <persistenceAdapter>
  107.     <kahaDB directory="${activemq.data}/kahadb"/>
  108. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  109. </transportConnectors><transportConnectors>
  110. <persistenceAdapter>
  111.     <kahaDB directory="${activemq.data}/kahadb"/>
  112. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  113. </transportConnectors>factory.setTrustAllPackages(true);<transportConnectors>
  114. <persistenceAdapter>
  115.     <kahaDB directory="${activemq.data}/kahadb"/>
  116. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  117. </transportConnectors><transportConnectors>
  118. <persistenceAdapter>
  119.     <kahaDB directory="${activemq.data}/kahadb"/>
  120. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  121. </transportConnectors>this.connectionFactory = factory;<transportConnectors>
  122. <persistenceAdapter>
  123.     <kahaDB directory="${activemq.data}/kahadb"/>
  124. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  125. </transportConnectors>}<transportConnectors>
  126. <persistenceAdapter>
  127.     <kahaDB directory="${activemq.data}/kahadb"/>
  128. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  129. </transportConnectors>public ConnectionFactory getConnectionFactory() {<transportConnectors>
  130. <persistenceAdapter>
  131.     <kahaDB directory="${activemq.data}/kahadb"/>
  132. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  133. </transportConnectors><transportConnectors>
  134. <persistenceAdapter>
  135.     <kahaDB directory="${activemq.data}/kahadb"/>
  136. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  137. </transportConnectors>return connectionFactory;<transportConnectors>
  138. <persistenceAdapter>
  139.     <kahaDB directory="${activemq.data}/kahadb"/>
  140. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  141. </transportConnectors>}}
复制代码
4. 实现 JMS 消息生产者
  1. import javax.jms.*;import org.osgi.service.component.annotations.Component;import org.osgi.service.component.annotations.Reference;import org.slf4j.Logger;import org.slf4j.LoggerFactory;@Component(service = JmsMessageProducer.class)public class JmsMessageProducer {<transportConnectors>
  2. <persistenceAdapter>
  3.     <kahaDB directory="${activemq.data}/kahadb"/>
  4. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  5. </transportConnectors>private static final Logger LOG = LoggerFactory.getLogger(JmsMessageProducer.class);<transportConnectors>
  6. <persistenceAdapter>
  7.     <kahaDB directory="${activemq.data}/kahadb"/>
  8. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  9. </transportConnectors><transportConnectors>
  10. <persistenceAdapter>
  11.     <kahaDB directory="${activemq.data}/kahadb"/>
  12. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  13. </transportConnectors>@Reference<transportConnectors>
  14. <persistenceAdapter>
  15.     <kahaDB directory="${activemq.data}/kahadb"/>
  16. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  17. </transportConnectors>private ActiveMQService activeMQService;<transportConnectors>
  18. <persistenceAdapter>
  19.     <kahaDB directory="${activemq.data}/kahadb"/>
  20. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  21. </transportConnectors>public void sendMessage(String queueName, String messageContent) {<transportConnectors>
  22. <persistenceAdapter>
  23.     <kahaDB directory="${activemq.data}/kahadb"/>
  24. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  25. </transportConnectors><transportConnectors>
  26. <persistenceAdapter>
  27.     <kahaDB directory="${activemq.data}/kahadb"/>
  28. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  29. </transportConnectors>Connection connection = null;<transportConnectors>
  30. <persistenceAdapter>
  31.     <kahaDB directory="${activemq.data}/kahadb"/>
  32. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  33. </transportConnectors><transportConnectors>
  34. <persistenceAdapter>
  35.     <kahaDB directory="${activemq.data}/kahadb"/>
  36. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  37. </transportConnectors>Session session = null;<transportConnectors>
  38. <persistenceAdapter>
  39.     <kahaDB directory="${activemq.data}/kahadb"/>
  40. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  41. </transportConnectors><transportConnectors>
  42. <persistenceAdapter>
  43.     <kahaDB directory="${activemq.data}/kahadb"/>
  44. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  45. </transportConnectors>MessageProducer producer = null;<transportConnectors>
  46. <persistenceAdapter>
  47.     <kahaDB directory="${activemq.data}/kahadb"/>
  48. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  49. </transportConnectors><transportConnectors>
  50. <persistenceAdapter>
  51.     <kahaDB directory="${activemq.data}/kahadb"/>
  52. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  53. </transportConnectors><transportConnectors>
  54. <persistenceAdapter>
  55.     <kahaDB directory="${activemq.data}/kahadb"/>
  56. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  57. </transportConnectors><transportConnectors>
  58. <persistenceAdapter>
  59.     <kahaDB directory="${activemq.data}/kahadb"/>
  60. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  61. </transportConnectors>try {<transportConnectors>
  62. <persistenceAdapter>
  63.     <kahaDB directory="${activemq.data}/kahadb"/>
  64. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  65. </transportConnectors><transportConnectors>
  66. <persistenceAdapter>
  67.     <kahaDB directory="${activemq.data}/kahadb"/>
  68. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  69. </transportConnectors><transportConnectors>
  70. <persistenceAdapter>
  71.     <kahaDB directory="${activemq.data}/kahadb"/>
  72. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  73. </transportConnectors>ConnectionFactory factory = activeMQService.getConnectionFactory();<transportConnectors>
  74. <persistenceAdapter>
  75.     <kahaDB directory="${activemq.data}/kahadb"/>
  76. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  77. </transportConnectors><transportConnectors>
  78. <persistenceAdapter>
  79.     <kahaDB directory="${activemq.data}/kahadb"/>
  80. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  81. </transportConnectors><transportConnectors>
  82. <persistenceAdapter>
  83.     <kahaDB directory="${activemq.data}/kahadb"/>
  84. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  85. </transportConnectors>connection = factory.createConnection();<transportConnectors>
  86. <persistenceAdapter>
  87.     <kahaDB directory="${activemq.data}/kahadb"/>
  88. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  89. </transportConnectors><transportConnectors>
  90. <persistenceAdapter>
  91.     <kahaDB directory="${activemq.data}/kahadb"/>
  92. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  93. </transportConnectors><transportConnectors>
  94. <persistenceAdapter>
  95.     <kahaDB directory="${activemq.data}/kahadb"/>
  96. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  97. </transportConnectors>connection.start();<transportConnectors>
  98. <persistenceAdapter>
  99.     <kahaDB directory="${activemq.data}/kahadb"/>
  100. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  101. </transportConnectors><transportConnectors>
  102. <persistenceAdapter>
  103.     <kahaDB directory="${activemq.data}/kahadb"/>
  104. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  105. </transportConnectors><transportConnectors>
  106. <persistenceAdapter>
  107.     <kahaDB directory="${activemq.data}/kahadb"/>
  108. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  109. </transportConnectors><transportConnectors>
  110. <persistenceAdapter>
  111.     <kahaDB directory="${activemq.data}/kahadb"/>
  112. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  113. </transportConnectors><transportConnectors>
  114. <persistenceAdapter>
  115.     <kahaDB directory="${activemq.data}/kahadb"/>
  116. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  117. </transportConnectors><transportConnectors>
  118. <persistenceAdapter>
  119.     <kahaDB directory="${activemq.data}/kahadb"/>
  120. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  121. </transportConnectors>session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);<transportConnectors>
  122. <persistenceAdapter>
  123.     <kahaDB directory="${activemq.data}/kahadb"/>
  124. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  125. </transportConnectors><transportConnectors>
  126. <persistenceAdapter>
  127.     <kahaDB directory="${activemq.data}/kahadb"/>
  128. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  129. </transportConnectors><transportConnectors>
  130. <persistenceAdapter>
  131.     <kahaDB directory="${activemq.data}/kahadb"/>
  132. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  133. </transportConnectors>Destination destination = session.createQueue(queueName);<transportConnectors>
  134. <persistenceAdapter>
  135.     <kahaDB directory="${activemq.data}/kahadb"/>
  136. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  137. </transportConnectors><transportConnectors>
  138. <persistenceAdapter>
  139.     <kahaDB directory="${activemq.data}/kahadb"/>
  140. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  141. </transportConnectors><transportConnectors>
  142. <persistenceAdapter>
  143.     <kahaDB directory="${activemq.data}/kahadb"/>
  144. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  145. </transportConnectors>producer = session.createProducer(destination);<transportConnectors>
  146. <persistenceAdapter>
  147.     <kahaDB directory="${activemq.data}/kahadb"/>
  148. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  149. </transportConnectors><transportConnectors>
  150. <persistenceAdapter>
  151.     <kahaDB directory="${activemq.data}/kahadb"/>
  152. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  153. </transportConnectors><transportConnectors>
  154. <persistenceAdapter>
  155.     <kahaDB directory="${activemq.data}/kahadb"/>
  156. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  157. </transportConnectors><transportConnectors>
  158. <persistenceAdapter>
  159.     <kahaDB directory="${activemq.data}/kahadb"/>
  160. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  161. </transportConnectors><transportConnectors>
  162. <persistenceAdapter>
  163.     <kahaDB directory="${activemq.data}/kahadb"/>
  164. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  165. </transportConnectors><transportConnectors>
  166. <persistenceAdapter>
  167.     <kahaDB directory="${activemq.data}/kahadb"/>
  168. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  169. </transportConnectors>TextMessage message = session.createTextMessage(messageContent);<transportConnectors>
  170. <persistenceAdapter>
  171.     <kahaDB directory="${activemq.data}/kahadb"/>
  172. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  173. </transportConnectors><transportConnectors>
  174. <persistenceAdapter>
  175.     <kahaDB directory="${activemq.data}/kahadb"/>
  176. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  177. </transportConnectors><transportConnectors>
  178. <persistenceAdapter>
  179.     <kahaDB directory="${activemq.data}/kahadb"/>
  180. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  181. </transportConnectors>producer.send(message);<transportConnectors>
  182. <persistenceAdapter>
  183.     <kahaDB directory="${activemq.data}/kahadb"/>
  184. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  185. </transportConnectors><transportConnectors>
  186. <persistenceAdapter>
  187.     <kahaDB directory="${activemq.data}/kahadb"/>
  188. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  189. </transportConnectors><transportConnectors>
  190. <persistenceAdapter>
  191.     <kahaDB directory="${activemq.data}/kahadb"/>
  192. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  193. </transportConnectors>LOG.info("Message sent to queue: {}", queueName);<transportConnectors>
  194. <persistenceAdapter>
  195.     <kahaDB directory="${activemq.data}/kahadb"/>
  196. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  197. </transportConnectors><transportConnectors>
  198. <persistenceAdapter>
  199.     <kahaDB directory="${activemq.data}/kahadb"/>
  200. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  201. </transportConnectors><transportConnectors>
  202. <persistenceAdapter>
  203.     <kahaDB directory="${activemq.data}/kahadb"/>
  204. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  205. </transportConnectors><transportConnectors>
  206. <persistenceAdapter>
  207.     <kahaDB directory="${activemq.data}/kahadb"/>
  208. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  209. </transportConnectors><transportConnectors>
  210. <persistenceAdapter>
  211.     <kahaDB directory="${activemq.data}/kahadb"/>
  212. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  213. </transportConnectors>} catch (JMSException e) {<transportConnectors>
  214. <persistenceAdapter>
  215.     <kahaDB directory="${activemq.data}/kahadb"/>
  216. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  217. </transportConnectors><transportConnectors>
  218. <persistenceAdapter>
  219.     <kahaDB directory="${activemq.data}/kahadb"/>
  220. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  221. </transportConnectors><transportConnectors>
  222. <persistenceAdapter>
  223.     <kahaDB directory="${activemq.data}/kahadb"/>
  224. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  225. </transportConnectors>LOG.error("Failed to send message", e);<transportConnectors>
  226. <persistenceAdapter>
  227.     <kahaDB directory="${activemq.data}/kahadb"/>
  228. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  229. </transportConnectors><transportConnectors>
  230. <persistenceAdapter>
  231.     <kahaDB directory="${activemq.data}/kahadb"/>
  232. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  233. </transportConnectors>} finally {<transportConnectors>
  234. <persistenceAdapter>
  235.     <kahaDB directory="${activemq.data}/kahadb"/>
  236. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  237. </transportConnectors><transportConnectors>
  238. <persistenceAdapter>
  239.     <kahaDB directory="${activemq.data}/kahadb"/>
  240. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  241. </transportConnectors><transportConnectors>
  242. <persistenceAdapter>
  243.     <kahaDB directory="${activemq.data}/kahadb"/>
  244. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  245. </transportConnectors>// 关闭资源<transportConnectors>
  246. <persistenceAdapter>
  247.     <kahaDB directory="${activemq.data}/kahadb"/>
  248. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  249. </transportConnectors><transportConnectors>
  250. <persistenceAdapter>
  251.     <kahaDB directory="${activemq.data}/kahadb"/>
  252. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  253. </transportConnectors><transportConnectors>
  254. <persistenceAdapter>
  255.     <kahaDB directory="${activemq.data}/kahadb"/>
  256. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  257. </transportConnectors>closeQuietly(producer);<transportConnectors>
  258. <persistenceAdapter>
  259.     <kahaDB directory="${activemq.data}/kahadb"/>
  260. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  261. </transportConnectors><transportConnectors>
  262. <persistenceAdapter>
  263.     <kahaDB directory="${activemq.data}/kahadb"/>
  264. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  265. </transportConnectors><transportConnectors>
  266. <persistenceAdapter>
  267.     <kahaDB directory="${activemq.data}/kahadb"/>
  268. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  269. </transportConnectors>closeQuietly(session);<transportConnectors>
  270. <persistenceAdapter>
  271.     <kahaDB directory="${activemq.data}/kahadb"/>
  272. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  273. </transportConnectors><transportConnectors>
  274. <persistenceAdapter>
  275.     <kahaDB directory="${activemq.data}/kahadb"/>
  276. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  277. </transportConnectors><transportConnectors>
  278. <persistenceAdapter>
  279.     <kahaDB directory="${activemq.data}/kahadb"/>
  280. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  281. </transportConnectors>closeQuietly(connection);<transportConnectors>
  282. <persistenceAdapter>
  283.     <kahaDB directory="${activemq.data}/kahadb"/>
  284. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  285. </transportConnectors><transportConnectors>
  286. <persistenceAdapter>
  287.     <kahaDB directory="${activemq.data}/kahadb"/>
  288. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  289. </transportConnectors>}<transportConnectors>
  290. <persistenceAdapter>
  291.     <kahaDB directory="${activemq.data}/kahadb"/>
  292. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  293. </transportConnectors>}<transportConnectors>
  294. <persistenceAdapter>
  295.     <kahaDB directory="${activemq.data}/kahadb"/>
  296. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  297. </transportConnectors><transportConnectors>
  298. <persistenceAdapter>
  299.     <kahaDB directory="${activemq.data}/kahadb"/>
  300. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  301. </transportConnectors>private void closeQuietly(AutoCloseable closeable) {<transportConnectors>
  302. <persistenceAdapter>
  303.     <kahaDB directory="${activemq.data}/kahadb"/>
  304. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  305. </transportConnectors><transportConnectors>
  306. <persistenceAdapter>
  307.     <kahaDB directory="${activemq.data}/kahadb"/>
  308. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  309. </transportConnectors>if (closeable != null) {<transportConnectors>
  310. <persistenceAdapter>
  311.     <kahaDB directory="${activemq.data}/kahadb"/>
  312. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  313. </transportConnectors><transportConnectors>
  314. <persistenceAdapter>
  315.     <kahaDB directory="${activemq.data}/kahadb"/>
  316. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  317. </transportConnectors><transportConnectors>
  318. <persistenceAdapter>
  319.     <kahaDB directory="${activemq.data}/kahadb"/>
  320. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  321. </transportConnectors>try {<transportConnectors>
  322. <persistenceAdapter>
  323.     <kahaDB directory="${activemq.data}/kahadb"/>
  324. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  325. </transportConnectors><transportConnectors>
  326. <persistenceAdapter>
  327.     <kahaDB directory="${activemq.data}/kahadb"/>
  328. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  329. </transportConnectors><transportConnectors>
  330. <persistenceAdapter>
  331.     <kahaDB directory="${activemq.data}/kahadb"/>
  332. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  333. </transportConnectors><transportConnectors>
  334. <persistenceAdapter>
  335.     <kahaDB directory="${activemq.data}/kahadb"/>
  336. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  337. </transportConnectors>closeable.close();<transportConnectors>
  338. <persistenceAdapter>
  339.     <kahaDB directory="${activemq.data}/kahadb"/>
  340. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  341. </transportConnectors><transportConnectors>
  342. <persistenceAdapter>
  343.     <kahaDB directory="${activemq.data}/kahadb"/>
  344. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  345. </transportConnectors><transportConnectors>
  346. <persistenceAdapter>
  347.     <kahaDB directory="${activemq.data}/kahadb"/>
  348. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  349. </transportConnectors>} catch (Exception e) {<transportConnectors>
  350. <persistenceAdapter>
  351.     <kahaDB directory="${activemq.data}/kahadb"/>
  352. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  353. </transportConnectors><transportConnectors>
  354. <persistenceAdapter>
  355.     <kahaDB directory="${activemq.data}/kahadb"/>
  356. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  357. </transportConnectors><transportConnectors>
  358. <persistenceAdapter>
  359.     <kahaDB directory="${activemq.data}/kahadb"/>
  360. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  361. </transportConnectors><transportConnectors>
  362. <persistenceAdapter>
  363.     <kahaDB directory="${activemq.data}/kahadb"/>
  364. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  365. </transportConnectors>LOG.warn("Error closing resource", e);<transportConnectors>
  366. <persistenceAdapter>
  367.     <kahaDB directory="${activemq.data}/kahadb"/>
  368. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  369. </transportConnectors><transportConnectors>
  370. <persistenceAdapter>
  371.     <kahaDB directory="${activemq.data}/kahadb"/>
  372. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  373. </transportConnectors><transportConnectors>
  374. <persistenceAdapter>
  375.     <kahaDB directory="${activemq.data}/kahadb"/>
  376. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  377. </transportConnectors>}<transportConnectors>
  378. <persistenceAdapter>
  379.     <kahaDB directory="${activemq.data}/kahadb"/>
  380. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  381. </transportConnectors><transportConnectors>
  382. <persistenceAdapter>
  383.     <kahaDB directory="${activemq.data}/kahadb"/>
  384. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  385. </transportConnectors>}<transportConnectors>
  386. <persistenceAdapter>
  387.     <kahaDB directory="${activemq.data}/kahadb"/>
  388. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  389. </transportConnectors>}}
复制代码
5. 实现 JMS 消息消费者(Sling Model)
  1. import javax.jms.*;import org.apache.sling.api.SlingHttpServletRequest;import org.apache.sling.models.annotations.Model;import org.osgi.service.component.annotations.Reference;import org.slf4j.Logger;import org.slf4j.LoggerFactory;@Model(adaptables = SlingHttpServletRequest.class)public class JmsMessageConsumer {<transportConnectors>
  2. <persistenceAdapter>
  3.     <kahaDB directory="${activemq.data}/kahadb"/>
  4. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  5. </transportConnectors>private static final Logger LOG = LoggerFactory.getLogger(JmsMessageConsumer.class);<transportConnectors>
  6. <persistenceAdapter>
  7.     <kahaDB directory="${activemq.data}/kahadb"/>
  8. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  9. </transportConnectors><transportConnectors>
  10. <persistenceAdapter>
  11.     <kahaDB directory="${activemq.data}/kahadb"/>
  12. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  13. </transportConnectors>@Reference<transportConnectors>
  14. <persistenceAdapter>
  15.     <kahaDB directory="${activemq.data}/kahadb"/>
  16. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  17. </transportConnectors>private ActiveMQService activeMQService;<transportConnectors>
  18. <persistenceAdapter>
  19.     <kahaDB directory="${activemq.data}/kahadb"/>
  20. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  21. </transportConnectors>public String receiveMessage(String queueName) {<transportConnectors>
  22. <persistenceAdapter>
  23.     <kahaDB directory="${activemq.data}/kahadb"/>
  24. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  25. </transportConnectors><transportConnectors>
  26. <persistenceAdapter>
  27.     <kahaDB directory="${activemq.data}/kahadb"/>
  28. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  29. </transportConnectors>Connection connection = null;<transportConnectors>
  30. <persistenceAdapter>
  31.     <kahaDB directory="${activemq.data}/kahadb"/>
  32. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  33. </transportConnectors><transportConnectors>
  34. <persistenceAdapter>
  35.     <kahaDB directory="${activemq.data}/kahadb"/>
  36. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  37. </transportConnectors>Session session = null;<transportConnectors>
  38. <persistenceAdapter>
  39.     <kahaDB directory="${activemq.data}/kahadb"/>
  40. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  41. </transportConnectors><transportConnectors>
  42. <persistenceAdapter>
  43.     <kahaDB directory="${activemq.data}/kahadb"/>
  44. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  45. </transportConnectors>MessageConsumer consumer = null;<transportConnectors>
  46. <persistenceAdapter>
  47.     <kahaDB directory="${activemq.data}/kahadb"/>
  48. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  49. </transportConnectors><transportConnectors>
  50. <persistenceAdapter>
  51.     <kahaDB directory="${activemq.data}/kahadb"/>
  52. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  53. </transportConnectors><transportConnectors>
  54. <persistenceAdapter>
  55.     <kahaDB directory="${activemq.data}/kahadb"/>
  56. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  57. </transportConnectors><transportConnectors>
  58. <persistenceAdapter>
  59.     <kahaDB directory="${activemq.data}/kahadb"/>
  60. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  61. </transportConnectors>try {<transportConnectors>
  62. <persistenceAdapter>
  63.     <kahaDB directory="${activemq.data}/kahadb"/>
  64. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  65. </transportConnectors><transportConnectors>
  66. <persistenceAdapter>
  67.     <kahaDB directory="${activemq.data}/kahadb"/>
  68. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  69. </transportConnectors><transportConnectors>
  70. <persistenceAdapter>
  71.     <kahaDB directory="${activemq.data}/kahadb"/>
  72. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  73. </transportConnectors>ConnectionFactory factory = activeMQService.getConnectionFactory();<transportConnectors>
  74. <persistenceAdapter>
  75.     <kahaDB directory="${activemq.data}/kahadb"/>
  76. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  77. </transportConnectors><transportConnectors>
  78. <persistenceAdapter>
  79.     <kahaDB directory="${activemq.data}/kahadb"/>
  80. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  81. </transportConnectors><transportConnectors>
  82. <persistenceAdapter>
  83.     <kahaDB directory="${activemq.data}/kahadb"/>
  84. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  85. </transportConnectors>connection = factory.createConnection();<transportConnectors>
  86. <persistenceAdapter>
  87.     <kahaDB directory="${activemq.data}/kahadb"/>
  88. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  89. </transportConnectors><transportConnectors>
  90. <persistenceAdapter>
  91.     <kahaDB directory="${activemq.data}/kahadb"/>
  92. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  93. </transportConnectors><transportConnectors>
  94. <persistenceAdapter>
  95.     <kahaDB directory="${activemq.data}/kahadb"/>
  96. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  97. </transportConnectors>connection.start();<transportConnectors>
  98. <persistenceAdapter>
  99.     <kahaDB directory="${activemq.data}/kahadb"/>
  100. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  101. </transportConnectors><transportConnectors>
  102. <persistenceAdapter>
  103.     <kahaDB directory="${activemq.data}/kahadb"/>
  104. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  105. </transportConnectors><transportConnectors>
  106. <persistenceAdapter>
  107.     <kahaDB directory="${activemq.data}/kahadb"/>
  108. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  109. </transportConnectors><transportConnectors>
  110. <persistenceAdapter>
  111.     <kahaDB directory="${activemq.data}/kahadb"/>
  112. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  113. </transportConnectors><transportConnectors>
  114. <persistenceAdapter>
  115.     <kahaDB directory="${activemq.data}/kahadb"/>
  116. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  117. </transportConnectors><transportConnectors>
  118. <persistenceAdapter>
  119.     <kahaDB directory="${activemq.data}/kahadb"/>
  120. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  121. </transportConnectors>session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);<transportConnectors>
  122. <persistenceAdapter>
  123.     <kahaDB directory="${activemq.data}/kahadb"/>
  124. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  125. </transportConnectors><transportConnectors>
  126. <persistenceAdapter>
  127.     <kahaDB directory="${activemq.data}/kahadb"/>
  128. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  129. </transportConnectors><transportConnectors>
  130. <persistenceAdapter>
  131.     <kahaDB directory="${activemq.data}/kahadb"/>
  132. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  133. </transportConnectors>Destination destination = session.createQueue(queueName);<transportConnectors>
  134. <persistenceAdapter>
  135.     <kahaDB directory="${activemq.data}/kahadb"/>
  136. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  137. </transportConnectors><transportConnectors>
  138. <persistenceAdapter>
  139.     <kahaDB directory="${activemq.data}/kahadb"/>
  140. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  141. </transportConnectors><transportConnectors>
  142. <persistenceAdapter>
  143.     <kahaDB directory="${activemq.data}/kahadb"/>
  144. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  145. </transportConnectors>consumer = session.createConsumer(destination);<transportConnectors>
  146. <persistenceAdapter>
  147.     <kahaDB directory="${activemq.data}/kahadb"/>
  148. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  149. </transportConnectors><transportConnectors>
  150. <persistenceAdapter>
  151.     <kahaDB directory="${activemq.data}/kahadb"/>
  152. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  153. </transportConnectors><transportConnectors>
  154. <persistenceAdapter>
  155.     <kahaDB directory="${activemq.data}/kahadb"/>
  156. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  157. </transportConnectors><transportConnectors>
  158. <persistenceAdapter>
  159.     <kahaDB directory="${activemq.data}/kahadb"/>
  160. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  161. </transportConnectors><transportConnectors>
  162. <persistenceAdapter>
  163.     <kahaDB directory="${activemq.data}/kahadb"/>
  164. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  165. </transportConnectors><transportConnectors>
  166. <persistenceAdapter>
  167.     <kahaDB directory="${activemq.data}/kahadb"/>
  168. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  169. </transportConnectors>// 同步接收消息(超时时间 5 秒)<transportConnectors>
  170. <persistenceAdapter>
  171.     <kahaDB directory="${activemq.data}/kahadb"/>
  172. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  173. </transportConnectors><transportConnectors>
  174. <persistenceAdapter>
  175.     <kahaDB directory="${activemq.data}/kahadb"/>
  176. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  177. </transportConnectors><transportConnectors>
  178. <persistenceAdapter>
  179.     <kahaDB directory="${activemq.data}/kahadb"/>
  180. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  181. </transportConnectors>Message message = consumer.receive(5000);<transportConnectors>
  182. <persistenceAdapter>
  183.     <kahaDB directory="${activemq.data}/kahadb"/>
  184. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  185. </transportConnectors><transportConnectors>
  186. <persistenceAdapter>
  187.     <kahaDB directory="${activemq.data}/kahadb"/>
  188. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  189. </transportConnectors><transportConnectors>
  190. <persistenceAdapter>
  191.     <kahaDB directory="${activemq.data}/kahadb"/>
  192. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  193. </transportConnectors>if (message instanceof TextMessage) {<transportConnectors>
  194. <persistenceAdapter>
  195.     <kahaDB directory="${activemq.data}/kahadb"/>
  196. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  197. </transportConnectors><transportConnectors>
  198. <persistenceAdapter>
  199.     <kahaDB directory="${activemq.data}/kahadb"/>
  200. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  201. </transportConnectors><transportConnectors>
  202. <persistenceAdapter>
  203.     <kahaDB directory="${activemq.data}/kahadb"/>
  204. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  205. </transportConnectors><transportConnectors>
  206. <persistenceAdapter>
  207.     <kahaDB directory="${activemq.data}/kahadb"/>
  208. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  209. </transportConnectors>return ((TextMessage) message).getText();<transportConnectors>
  210. <persistenceAdapter>
  211.     <kahaDB directory="${activemq.data}/kahadb"/>
  212. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  213. </transportConnectors><transportConnectors>
  214. <persistenceAdapter>
  215.     <kahaDB directory="${activemq.data}/kahadb"/>
  216. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  217. </transportConnectors><transportConnectors>
  218. <persistenceAdapter>
  219.     <kahaDB directory="${activemq.data}/kahadb"/>
  220. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  221. </transportConnectors>}<transportConnectors>
  222. <persistenceAdapter>
  223.     <kahaDB directory="${activemq.data}/kahadb"/>
  224. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  225. </transportConnectors><transportConnectors>
  226. <persistenceAdapter>
  227.     <kahaDB directory="${activemq.data}/kahadb"/>
  228. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  229. </transportConnectors>} catch (JMSException e) {<transportConnectors>
  230. <persistenceAdapter>
  231.     <kahaDB directory="${activemq.data}/kahadb"/>
  232. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  233. </transportConnectors><transportConnectors>
  234. <persistenceAdapter>
  235.     <kahaDB directory="${activemq.data}/kahadb"/>
  236. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  237. </transportConnectors><transportConnectors>
  238. <persistenceAdapter>
  239.     <kahaDB directory="${activemq.data}/kahadb"/>
  240. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  241. </transportConnectors>LOG.error("Failed to receive message", e);<transportConnectors>
  242. <persistenceAdapter>
  243.     <kahaDB directory="${activemq.data}/kahadb"/>
  244. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  245. </transportConnectors><transportConnectors>
  246. <persistenceAdapter>
  247.     <kahaDB directory="${activemq.data}/kahadb"/>
  248. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  249. </transportConnectors>} finally {<transportConnectors>
  250. <persistenceAdapter>
  251.     <kahaDB directory="${activemq.data}/kahadb"/>
  252. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  253. </transportConnectors><transportConnectors>
  254. <persistenceAdapter>
  255.     <kahaDB directory="${activemq.data}/kahadb"/>
  256. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  257. </transportConnectors><transportConnectors>
  258. <persistenceAdapter>
  259.     <kahaDB directory="${activemq.data}/kahadb"/>
  260. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  261. </transportConnectors>// 关闭资源<transportConnectors>
  262. <persistenceAdapter>
  263.     <kahaDB directory="${activemq.data}/kahadb"/>
  264. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  265. </transportConnectors><transportConnectors>
  266. <persistenceAdapter>
  267.     <kahaDB directory="${activemq.data}/kahadb"/>
  268. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  269. </transportConnectors><transportConnectors>
  270. <persistenceAdapter>
  271.     <kahaDB directory="${activemq.data}/kahadb"/>
  272. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  273. </transportConnectors>closeQuietly(consumer);<transportConnectors>
  274. <persistenceAdapter>
  275.     <kahaDB directory="${activemq.data}/kahadb"/>
  276. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  277. </transportConnectors><transportConnectors>
  278. <persistenceAdapter>
  279.     <kahaDB directory="${activemq.data}/kahadb"/>
  280. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  281. </transportConnectors><transportConnectors>
  282. <persistenceAdapter>
  283.     <kahaDB directory="${activemq.data}/kahadb"/>
  284. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  285. </transportConnectors>closeQuietly(session);<transportConnectors>
  286. <persistenceAdapter>
  287.     <kahaDB directory="${activemq.data}/kahadb"/>
  288. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  289. </transportConnectors><transportConnectors>
  290. <persistenceAdapter>
  291.     <kahaDB directory="${activemq.data}/kahadb"/>
  292. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  293. </transportConnectors><transportConnectors>
  294. <persistenceAdapter>
  295.     <kahaDB directory="${activemq.data}/kahadb"/>
  296. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  297. </transportConnectors>closeQuietly(connection);<transportConnectors>
  298. <persistenceAdapter>
  299.     <kahaDB directory="${activemq.data}/kahadb"/>
  300. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  301. </transportConnectors><transportConnectors>
  302. <persistenceAdapter>
  303.     <kahaDB directory="${activemq.data}/kahadb"/>
  304. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  305. </transportConnectors>}<transportConnectors>
  306. <persistenceAdapter>
  307.     <kahaDB directory="${activemq.data}/kahadb"/>
  308. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  309. </transportConnectors><transportConnectors>
  310. <persistenceAdapter>
  311.     <kahaDB directory="${activemq.data}/kahadb"/>
  312. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  313. </transportConnectors>return null;<transportConnectors>
  314. <persistenceAdapter>
  315.     <kahaDB directory="${activemq.data}/kahadb"/>
  316. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  317. </transportConnectors>}<transportConnectors>
  318. <persistenceAdapter>
  319.     <kahaDB directory="${activemq.data}/kahadb"/>
  320. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  321. </transportConnectors><transportConnectors>
  322. <persistenceAdapter>
  323.     <kahaDB directory="${activemq.data}/kahadb"/>
  324. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  325. </transportConnectors>// 省略 closeQuietly 方法(同上)}
复制代码
四、AEM 组件集成示例

1. 创建 Sling Model 调用生产者
  1. import org.apache.sling.api.SlingHttpServletRequest;import org.apache.sling.models.annotations.Model;import org.osgi.service.component.annotations.Reference;@Model(adaptables = SlingHttpServletRequest.class)public class AemMessageSender {<transportConnectors>
  2. <persistenceAdapter>
  3.     <kahaDB directory="${activemq.data}/kahadb"/>
  4. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  5. </transportConnectors>@Reference<transportConnectors>
  6. <persistenceAdapter>
  7.     <kahaDB directory="${activemq.data}/kahadb"/>
  8. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  9. </transportConnectors>private JmsMessageProducer messageProducer;<transportConnectors>
  10. <persistenceAdapter>
  11.     <kahaDB directory="${activemq.data}/kahadb"/>
  12. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  13. </transportConnectors>public void sendAemContent(String content) {<transportConnectors>
  14. <persistenceAdapter>
  15.     <kahaDB directory="${activemq.data}/kahadb"/>
  16. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  17. </transportConnectors><transportConnectors>
  18. <persistenceAdapter>
  19.     <kahaDB directory="${activemq.data}/kahadb"/>
  20. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  21. </transportConnectors>messageProducer.sendMessage("aem.content.queue", content);<transportConnectors>
  22. <persistenceAdapter>
  23.     <kahaDB directory="${activemq.data}/kahadb"/>
  24. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  25. </transportConnectors>}}
复制代码
2. 创建 HTL 模板触发消息发送
  1. <transportConnectors>
  2. <persistenceAdapter>
  3.     <kahaDB directory="${activemq.data}/kahadb"/>
  4. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  5. </transportConnectors>Send Content to ActiveMQ<transportConnectors>
  6. <persistenceAdapter>
  7.     <kahaDB directory="${activemq.data}/kahadb"/>
  8. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  9. </transportConnectors>
复制代码
3. 创建 Sling Servlet 处理消息发送请求
  1. import org.apache.sling.api.SlingHttpServletRequest;import org.apache.sling.api.SlingHttpServletResponse;import org.apache.sling.api.servlets.SlingAllMethodsServlet;import org.osgi.service.component.annotations.Component;import org.osgi.service.component.annotations.Reference;import javax.servlet.Servlet;import java.io.IOException;@Component(service = Servlet.class,<transportConnectors>
  2. <persistenceAdapter>
  3.     <kahaDB directory="${activemq.data}/kahadb"/>
  4. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  5. </transportConnectors>property = {<transportConnectors>
  6. <persistenceAdapter>
  7.     <kahaDB directory="${activemq.data}/kahadb"/>
  8. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  9. </transportConnectors><transportConnectors>
  10. <persistenceAdapter>
  11.     <kahaDB directory="${activemq.data}/kahadb"/>
  12. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  13. </transportConnectors>"sling.servlet.paths=/bin/sendMessage",<transportConnectors>
  14. <persistenceAdapter>
  15.     <kahaDB directory="${activemq.data}/kahadb"/>
  16. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  17. </transportConnectors><transportConnectors>
  18. <persistenceAdapter>
  19.     <kahaDB directory="${activemq.data}/kahadb"/>
  20. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  21. </transportConnectors>"sling.servlet.methods=POST"<transportConnectors>
  22. <persistenceAdapter>
  23.     <kahaDB directory="${activemq.data}/kahadb"/>
  24. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  25. </transportConnectors>})public class MessageSendServlet extends SlingAllMethodsServlet {<transportConnectors>
  26. <persistenceAdapter>
  27.     <kahaDB directory="${activemq.data}/kahadb"/>
  28. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  29. </transportConnectors>@Reference<transportConnectors>
  30. <persistenceAdapter>
  31.     <kahaDB directory="${activemq.data}/kahadb"/>
  32. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  33. </transportConnectors>private AemMessageSender messageSender;<transportConnectors>
  34. <persistenceAdapter>
  35.     <kahaDB directory="${activemq.data}/kahadb"/>
  36. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  37. </transportConnectors>@Override<transportConnectors>
  38. <persistenceAdapter>
  39.     <kahaDB directory="${activemq.data}/kahadb"/>
  40. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  41. </transportConnectors>protected void doPost(SlingHttpServletRequest request, SlingHttpServletResponse response) throws IOException {<transportConnectors>
  42. <persistenceAdapter>
  43.     <kahaDB directory="${activemq.data}/kahadb"/>
  44. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  45. </transportConnectors><transportConnectors>
  46. <persistenceAdapter>
  47.     <kahaDB directory="${activemq.data}/kahadb"/>
  48. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  49. </transportConnectors>String content = request.getParameter("content");<transportConnectors>
  50. <persistenceAdapter>
  51.     <kahaDB directory="${activemq.data}/kahadb"/>
  52. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  53. </transportConnectors><transportConnectors>
  54. <persistenceAdapter>
  55.     <kahaDB directory="${activemq.data}/kahadb"/>
  56. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  57. </transportConnectors>messageSender.sendAemContent(content);<transportConnectors>
  58. <persistenceAdapter>
  59.     <kahaDB directory="${activemq.data}/kahadb"/>
  60. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  61. </transportConnectors><transportConnectors>
  62. <persistenceAdapter>
  63.     <kahaDB directory="${activemq.data}/kahadb"/>
  64. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  65. </transportConnectors>response.getWriter().write("Message sent successfully");<transportConnectors>
  66. <persistenceAdapter>
  67.     <kahaDB directory="${activemq.data}/kahadb"/>
  68. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  69. </transportConnectors>}}
复制代码
五、高级配置(可选)

1. 配置 JMS 持久化

修改 activemq.xml 启用持久化:
  1. <transportConnectors>
  2. <persistenceAdapter>
  3.     <kahaDB directory="${activemq.data}/kahadb"/>
  4. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  5. </transportConnectors>
复制代码
2. 配置消息监听器(异步消费)
  1. @Component(service = MessageListener.class, immediate = true)public class AemMessageListener implements MessageListener {<transportConnectors>
  2. <persistenceAdapter>
  3.     <kahaDB directory="${activemq.data}/kahadb"/>
  4. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  5. </transportConnectors>@Activate<transportConnectors>
  6. <persistenceAdapter>
  7.     <kahaDB directory="${activemq.data}/kahadb"/>
  8. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  9. </transportConnectors>protected void activate() {<transportConnectors>
  10. <persistenceAdapter>
  11.     <kahaDB directory="${activemq.data}/kahadb"/>
  12. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  13. </transportConnectors><transportConnectors>
  14. <persistenceAdapter>
  15.     <kahaDB directory="${activemq.data}/kahadb"/>
  16. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  17. </transportConnectors>// 初始化 JMS 连接并注册监听器<transportConnectors>
  18. <persistenceAdapter>
  19.     <kahaDB directory="${activemq.data}/kahadb"/>
  20. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  21. </transportConnectors><transportConnectors>
  22. <persistenceAdapter>
  23.     <kahaDB directory="${activemq.data}/kahadb"/>
  24. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  25. </transportConnectors>// 代码略(类似消费者实现)<transportConnectors>
  26. <persistenceAdapter>
  27.     <kahaDB directory="${activemq.data}/kahadb"/>
  28. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  29. </transportConnectors>}<transportConnectors>
  30. <persistenceAdapter>
  31.     <kahaDB directory="${activemq.data}/kahadb"/>
  32. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  33. </transportConnectors>@Override<transportConnectors>
  34. <persistenceAdapter>
  35.     <kahaDB directory="${activemq.data}/kahadb"/>
  36. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  37. </transportConnectors>public void onMessage(Message message) {<transportConnectors>
  38. <persistenceAdapter>
  39.     <kahaDB directory="${activemq.data}/kahadb"/>
  40. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  41. </transportConnectors><transportConnectors>
  42. <persistenceAdapter>
  43.     <kahaDB directory="${activemq.data}/kahadb"/>
  44. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  45. </transportConnectors>try {<transportConnectors>
  46. <persistenceAdapter>
  47.     <kahaDB directory="${activemq.data}/kahadb"/>
  48. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  49. </transportConnectors><transportConnectors>
  50. <persistenceAdapter>
  51.     <kahaDB directory="${activemq.data}/kahadb"/>
  52. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  53. </transportConnectors><transportConnectors>
  54. <persistenceAdapter>
  55.     <kahaDB directory="${activemq.data}/kahadb"/>
  56. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  57. </transportConnectors>if (message instanceof TextMessage) {<transportConnectors>
  58. <persistenceAdapter>
  59.     <kahaDB directory="${activemq.data}/kahadb"/>
  60. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  61. </transportConnectors><transportConnectors>
  62. <persistenceAdapter>
  63.     <kahaDB directory="${activemq.data}/kahadb"/>
  64. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  65. </transportConnectors><transportConnectors>
  66. <persistenceAdapter>
  67.     <kahaDB directory="${activemq.data}/kahadb"/>
  68. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  69. </transportConnectors><transportConnectors>
  70. <persistenceAdapter>
  71.     <kahaDB directory="${activemq.data}/kahadb"/>
  72. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  73. </transportConnectors>String content = ((TextMessage) message).getText();<transportConnectors>
  74. <persistenceAdapter>
  75.     <kahaDB directory="${activemq.data}/kahadb"/>
  76. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  77. </transportConnectors><transportConnectors>
  78. <persistenceAdapter>
  79.     <kahaDB directory="${activemq.data}/kahadb"/>
  80. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  81. </transportConnectors><transportConnectors>
  82. <persistenceAdapter>
  83.     <kahaDB directory="${activemq.data}/kahadb"/>
  84. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  85. </transportConnectors><transportConnectors>
  86. <persistenceAdapter>
  87.     <kahaDB directory="${activemq.data}/kahadb"/>
  88. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  89. </transportConnectors>// 处理接收到的消息(如更新 AEM 内容)<transportConnectors>
  90. <persistenceAdapter>
  91.     <kahaDB directory="${activemq.data}/kahadb"/>
  92. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  93. </transportConnectors><transportConnectors>
  94. <persistenceAdapter>
  95.     <kahaDB directory="${activemq.data}/kahadb"/>
  96. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  97. </transportConnectors><transportConnectors>
  98. <persistenceAdapter>
  99.     <kahaDB directory="${activemq.data}/kahadb"/>
  100. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  101. </transportConnectors><transportConnectors>
  102. <persistenceAdapter>
  103.     <kahaDB directory="${activemq.data}/kahadb"/>
  104. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  105. </transportConnectors>processAemContent(content);<transportConnectors>
  106. <persistenceAdapter>
  107.     <kahaDB directory="${activemq.data}/kahadb"/>
  108. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  109. </transportConnectors><transportConnectors>
  110. <persistenceAdapter>
  111.     <kahaDB directory="${activemq.data}/kahadb"/>
  112. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  113. </transportConnectors><transportConnectors>
  114. <persistenceAdapter>
  115.     <kahaDB directory="${activemq.data}/kahadb"/>
  116. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  117. </transportConnectors>}<transportConnectors>
  118. <persistenceAdapter>
  119.     <kahaDB directory="${activemq.data}/kahadb"/>
  120. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  121. </transportConnectors><transportConnectors>
  122. <persistenceAdapter>
  123.     <kahaDB directory="${activemq.data}/kahadb"/>
  124. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  125. </transportConnectors>} catch (JMSException e) {<transportConnectors>
  126. <persistenceAdapter>
  127.     <kahaDB directory="${activemq.data}/kahadb"/>
  128. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  129. </transportConnectors><transportConnectors>
  130. <persistenceAdapter>
  131.     <kahaDB directory="${activemq.data}/kahadb"/>
  132. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  133. </transportConnectors><transportConnectors>
  134. <persistenceAdapter>
  135.     <kahaDB directory="${activemq.data}/kahadb"/>
  136. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  137. </transportConnectors>LOG.error("Error processing message", e);<transportConnectors>
  138. <persistenceAdapter>
  139.     <kahaDB directory="${activemq.data}/kahadb"/>
  140. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  141. </transportConnectors><transportConnectors>
  142. <persistenceAdapter>
  143.     <kahaDB directory="${activemq.data}/kahadb"/>
  144. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  145. </transportConnectors>}<transportConnectors>
  146. <persistenceAdapter>
  147.     <kahaDB directory="${activemq.data}/kahadb"/>
  148. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  149. </transportConnectors>}<transportConnectors>
  150. <persistenceAdapter>
  151.     <kahaDB directory="${activemq.data}/kahadb"/>
  152. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  153. </transportConnectors>private void processAemContent(String content) {<transportConnectors>
  154. <persistenceAdapter>
  155.     <kahaDB directory="${activemq.data}/kahadb"/>
  156. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  157. </transportConnectors><transportConnectors>
  158. <persistenceAdapter>
  159.     <kahaDB directory="${activemq.data}/kahadb"/>
  160. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  161. </transportConnectors>// 实现 AEM 内容处理逻辑<transportConnectors>
  162. <persistenceAdapter>
  163.     <kahaDB directory="${activemq.data}/kahadb"/>
  164. </persistenceAdapter><transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
  165. </transportConnectors>}}
复制代码
六、验证集成效果


  • 启动 ActiveMQ:
  1. bin/activemq start
复制代码

  • 部署 AEM 包:将开发的 OSGi 组件打包部署到 AEM。
  • 测试消息发送:

    • 通过 AEM 页面触发消息发送
    • 查看 ActiveMQ 控制台(http://localhost:8161/admin/queues.jsp)确认消息入队

  • 测试消息接收:

    • 实现消息消费者服务
    • 验证消息是否正确处理

七、常见问题与解决方案


  • 连接失败

    • 检查 ActiveMQ 地址和端口
    • 确认防火墙未阻止通信(默认 61616 端口)

  • 消息丢失

    • 确保使用 DeliveryMode.PERSISTENT
    • 检查 ActiveMQ 持久化配置

  • AEM 组件无法访问 JMS 服务

    • 检查 OSGi 配置是否正确
    • 确认依赖包已正确导入

 
通过以上步骤,你可以实现 AEM 与 ActiveMQ 的完整集成,实现系统间的异步通信和解耦。根据实际需求,你还可以进一步优化配置,如使用 JNDI 管理连接工厂、配置集群模式提高可用性等。 
 
 
 
 
       
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册