ActiveMQ配置流程
- 获取原厂商提供的工厂类,配置Url,Name,Password(端口号为61616)
- 获取工厂连接池,注入工厂类,设置最大连接数
- 配置Spring管理,注入连接池
- 获取Jms工具类,注入上面的 Spring工厂
- 配置消息处理类,实例化bean
- 配置Spring监听器,注入Spring工厂,目标管道,监听器
代码:
<!--ActiveMq 配置-->
<!-- 工厂 原厂商提供 -->
<bean id="activeMQConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
<!-- 设置连接 URL -->
<property name="brokerURL" value="tcp://192.168.0.0:61616"/>
<!-- 用户名 -->
<property name="userName" value="admin"/>
<!-- 密码 -->
<property name="password" value="admin"/>
</bean>
<!-- 工厂连接池 原厂商提供 -->
<bean id="pooledConnectionFactoryBean" class="org.apache.activemq.pool.PooledConnectionFactoryBean">
<property name="connectionFactory" ref="activeMQConnectionFactory"/>
<!-- 最大连接数 -->
<property name="maxConnections" value="数量"/>
</bean>
<!-- spring 管理上面的工厂 -->
<bean id="connectionFactory" class="org.springframework.jms.connection.SingleConnectionFactory">
<!-- 注入上面的连接池 -->
<property name="targetConnectionFactory" ref="pooledConnectionFactoryBean"/>
</bean>
<!-- jmsTemplate由spring提供 -->
<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory" ref="connectionFactory"/>
<!-- 默认目标管道 可以不配,在send方法中指定 -->
<property name="defaultDestinationName" value="管道名"/>
</bean>
<!-- 处理消息的类 -->
<bean id="customMessageListener" class="com.chinasofti.core.message.CustomMessageListener">
</bean>
<!-- Spring监听器 监听ActiveMQ中是否有消息 -->
<bean class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<!-- 连接上ActiveMQ -->
<property name="connectionFactory" ref="connectionFactory"/>
<!-- 指定目标管道 -->
<property name="destinationName" value="管道名(与上同名)"/>
<!-- 指定监听到后的处理类 处理回调信息 -->
<property name="messageListener" ref="customMessageListener"></property>
</bean>
报错:
无法连接ip下的61616端口,原因,虚拟机中未配置ActiveMQ
ActiveMQ与zookpeer配置几乎相同,解压即可,启动服务
无法找到指定的处理类
处理类的路径错误,或者压根没写