ActiveMQのインストールと使用ActiveMQの使用コードサンプル(消費者)
詳細
#SMTPサービス構成
mail.host=smtp.qq.com
mail.port=25
[email protected]
mail.password=XXXX
mail.smtp.auth=true
mail.smtp.timeout=30000
[email protected]
## MQ
mq.brokerURL=tcp\://192.168.4.101\:61616
mq.userName=john
mq.password=john.123
mq.pool.maxConnections=10
#queueName
queueName=wusc.edu.mqtest.v1
4.0.0
wusc.edu.common
edu-common-parent
1.0-SNAPSHOT
../edu-common-parent
com.fsbay.mqtest
edu-demo-mqconsumer
1.0-SNAPSHOT
war
edu-demo-mqconsumer
http://maven.apache.org
edu-demo-mqconsumer
${project.build.directory}/classes
src/main/resources
true
**/*.xml
**/*.properties
antlr
antlr
aopalliance
aopalliance
org.aspectj
aspectjweaver
cglib
cglib
net.sf.json-lib
json-lib
jdk15
compile
ognl
ognl
oro
oro
commons-beanutils
commons-beanutils
commons-codec
commons-codec
commons-collections
commons-collections
commons-digester
commons-digester
commons-fileupload
commons-fileupload
commons-io
commons-io
org.apache.commons
commons-lang3
commons-logging
commons-logging
commons-validator
commons-validator
dom4j
dom4j
net.sf.ezmorph
ezmorph
javassist
javassist
log4j
log4j
org.slf4j
slf4j-api
org.slf4j
slf4j-log4j12
com.alibaba
fastjson
org.springframework
spring-aop
org.springframework
spring-aspects
org.springframework
spring-beans
org.springframework
spring-context
org.springframework
spring-context-support
org.springframework
spring-core
org.springframework
spring-jms
org.springframework
spring-orm
org.springframework
spring-oxm
org.springframework
spring-test
test
org.springframework
spring-tx
org.apache.activemq
activemq-all
org.apache.activemq
activemq-pool
javax.mail
mail
1.4.7
package com.fsbay.demo.mqtest.biz;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.MailException;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import org.springframework.stereotype.Component;
import com.fsbay.demo.mqtest.params.MailParam;
/**
*
* @ : .
* @ : john .
* @ : 2015-3-18, 1:08:22 .
* @ : V1.0 .
*/
@Component("mailBiz")
public class MailBiz {
@Autowired
private JavaMailSender mailSender;// spring
@Autowired
private SimpleMailMessage simpleMailMessage;// spring
@Autowired
private ThreadPoolTaskExecutor threadPool;
/**
*
*
* @param mailParamTemp
* templateName,toMail,subject,mapModel
* @throws Exception
*
*/
public void mailSend(final MailParam mailParam) {
threadPool.execute(new Runnable() {
public void run() {
try {
simpleMailMessage.setFrom(simpleMailMessage.getFrom()); // ,
simpleMailMessage.setTo(mailParam.getTo()); //
simpleMailMessage.setSubject(mailParam.getSubject());
simpleMailMessage.setText(mailParam.getContent());
mailSender.send(simpleMailMessage);
} catch (MailException e) {
throw e;
}
}
});
}
}
package com.fsbay.demo.mqtest.listener;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.Session;
import org.apache.activemq.command.ActiveMQTextMessage;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.jms.core.MessageCreator;
import org.springframework.jms.listener.SessionAwareMessageListener;
import org.springframework.stereotype.Component;
import com.fsbay.demo.mqtest.biz.MailBiz;
import com.fsbay.demo.mqtest.params.MailParam;
import com.alibaba.fastjson.JSONObject;
/**
*
* @ : .
* @ : John .
* @ : 2015-3-17, 11:21:23 .
* @ : V1.0 .
*/
@Component
public class ConsumerSessionAwareMessageListener implements SessionAwareMessageListener {
private static final Log log = LogFactory.getLog(ConsumerSessionAwareMessageListener.class);
@Autowired
private JmsTemplate activeMqJmsTemplate;
@Autowired
private Destination sessionAwareQueue;
@Autowired
private MailBiz bailBiz;
public synchronized void onMessage(Message message, Session session) {
try {
ActiveMQTextMessage msg = (ActiveMQTextMessage) message;
final String ms = msg.getText();
log.info("==>receive message:" + ms);
MailParam mailParam = JSONObject.parseObject(ms, MailParam.class);//
if (mailParam == null) {
return;
}
try {
bailBiz.mailSend(mailParam);
} catch (Exception e) {
// ,
// activeMqJmsTemplate.send(sessionAwareQueue, new MessageCreator() {
// public Message createMessage(Session session) throws JMSException {
// return session.createTextMessage(ms);
// }
// });
log.error("==>MailException:", e);
}
} catch (Exception e) {
log.error("==>", e);
}
}
}
package com.fsbay.demo.mqtest.params;
/**
*
* @ : .
* @ : john .
* @ : 2015-3-18, 1:08:42 .
* @ : V1.0 .
*/
public class MailParam {
/** **/
private String from;
/** **/
private String to;
/** **/
private String subject;
/** **/
private String content;
public MailParam() {
}
public MailParam(String to, String subject, String content) {
this.to = to;
this.subject = subject;
this.content = content;
}
public String getFrom() {
return from;
}
public void setFrom(String from) {
this.from = from;
}
public String getTo() {
return to;
}
public void setTo(String to) {
this.to = to;
}
public String getSubject() {
return subject;
}
public void setSubject(String subject) {
this.subject = subject;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
}
package com.fsbay.demo.mqtest;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
*
* @ : ActiveMQ .
* @ : john .
* @ : 2015-3-17, 2:25:20 .
* @ : V1.0 .
*/
public class MQConsumer {
private static final Log log = LogFactory.getLog(MQConsumer.class);
public static void main(String[] args) {
try {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("classpath:spring/spring-context.xml");
context.start();
} catch (Exception e) {
log.error("==>MQ context start error:", e);
System.exit(0);
}
}
}
${mail.smtp.auth}
${mail.smtp.timeout}
${mail.default.from}
${queueName}
#SMTPサービス構成
mail.host=smtp.qq.com
mail.port=25
[email protected]
mail.password=XXXX
mail.smtp.auth=true
mail.smtp.timeout=30000
[email protected]
## MQ
mq.brokerURL=tcp\://192.168.4.101\:61616
mq.userName=john
mq.password=john.123
mq.pool.maxConnections=10
#queueName
queueName=wusc.edu.mqtest.v1