1、amq=/activemq.apache.org/schema/corexsi=/www.w3.org/2001/XMLSchema-instance xsi:schemaLocation=/www.springframework.org/schema/beans http:/www.springframework.org/schema/beans/spring-beans-2.5.xsdbean class=org.springframework.beans.factory.config.PropertyPlaceholderConfigurer &property name=locatio
2、ns &list& &value&classpath:com/demo/broker.properties&/value&/list&/property&/bean&bean id=tcpConnector class=org.apache.activemq.broker.TransportConnectoruri value=$broker.tcp.local.urltcpQueuemand.ActiveMQQueuephysicalName$broker.tcp.local.queuekahaPersistenceAdapterorg.apache.activemq.store.kahad
3、aptor.KahaPersistenceAdapterpersistentIndextruemaxDataFileLength1048576kahaDBPersistenceAdapterorg.apache.activemq.store.kahadb.KahaDBPersistenceAdaptercheckForCorruptJournalFilescheckpointInterval5000checksumJournalFilescleanupInterval30000directoryactivemq-dataenableIndexWriteAsyncenableJournalDis
4、kSyncsignoreMissingJournalfilesfalseindexCacheSize100journalMaxFileLengthjournalMaxWriteBatchSize1000brokerServiceorg.apache.activemq.broker.BrokerService init-method=start destroy-method=stop scope=singletonbrokerName$broker.tcp.local.nameuseJmxpersistenceAdapter ref=transportConnectorsref local= /
5、&destinationsset&/set&pluginsloggingBrokerPlugindestinationDotFilePluginstatisticsBrokerPluginorg.apache.activemq.broker.util.LoggingBrokerPluginlogAllorg.apache.activemq.broker.view.DestinationDotFilePluginfileActiveMQDestinations.dot.txtorg.apache.activemq.plugin.StatisticsBrokerPlugin/beans& 二、消息
6、生产者配置1、beans-tcp-producer.xml文件内容:connectionFactoryorg.apache.activemq.ActiveMQConnectionFactorybrokerURL!- 采用TCP长连接方式, 避免每次建立短连接需要的额外工作时间 -&pooledConnectionFactoryorg.apache.activemq.pool.PooledConnectionFactoryconstructor-arg ref=/constructor-arg&jmsTemplateorg.springframework.jms.core.JmsTemplate
7、bean class=org.springframework.jms.connection.SingleConnectionFactorytargetConnectionFactorymessageConvertersessionTransacted- 消息转换 -&com.demo.client.MyMessageConverter- 消息生产 -&messageProducercom.demo.client.MyMessageProducertemplatedestination 2、消息转换类:public class MyMessageConverter implements Mess
8、ageConverter private static Logger log = Logger.getLogger(MyMessageConverter.class); SuppressWarnings(unchecked) public Object fromMessage(Message msg) throws JMSException, MessageConversionException if (msg instanceof ObjectMessage) HashMap&String, byte& map = (HashMap&) (ObjectMessage) msg) .getOb
9、jectProperty(Map); try ByteArrayInputStream bis = new ByteArrayInputStream(map .get(MSG_ID); ObjectInputStream ois = new ObjectInputStream(bis); Object o = ois.readObject(); ois.close(); bis.close(); return o; catch (IOException e) log.error(failed to read object message: + e.getMessage(); catch (Cl
10、assNotFoundException e) else throw new JMSException(Message: + msg + is not a Map ! return null; public Message toMessage(Object obj, Session session) throws JMSException, if (obj instanceof MyMessage) ActiveMQObjectMessage o = (ActiveMQObjectMessage) session .createObjectMessage(); Map& map = new H
11、ashMap&(); ByteArrayOutputStream bos = new ByteArrayOutputStream(); ObjectOutputStream oos = new ObjectOutputStream(bos); oos.writeObject(obj); map.put(, bos.toByteArray(); oos.close(); bos.close();failed to write object message: o.setObjectProperty(, map); return o;Object: + obj + is not a Message
12、! 3、消息生产者类:public class MyMessageProducer private static Logger log = Logger.getLogger(MyMessageProducer.class); private JmsTemplate template; private Queue destination; public void setTemplate(JmsTemplate template) this.template = template; public void setDestination(Queue destination) this.destination = destination; public void send(GrccMessage message) this.template.convertAndSend(this.destination, message); log.info(生产消息 =&n + message); try Thread.sleep(1000); catch (InterruptedException e) 三、消息消费者配置:1、beans-tcp-consumer.xml文件内容:/bean
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2