Spring – JMS 적용하기
Spring framework에서 JMS(Java Message Service)로 처리해야 할 일이 생겨 설정을 기록해 둔다.
JMS를 테스트해 보기 위해서는 다음의 설정이 필요하다.
- pom.xml(maven)
- jms-context.xml(Spring 기존의 설정파일에 추가해도 된다.)
- activeMQ설치 및 실행
- 테스트코드 작성
1.pom.xml
pom.xml에는 다음의 코드를 추가.
또한 다음의 jar도 필요하다.
2.jms-context.xml(가칭)
3.activeMQ설치 및 실행.
인터넷에서 activeMQ로 검색해도 되고 http://activemq.apache.org/ 로 직접 찿아가도 된다. 여기서 download페이지에 가면 Window 혹은 Linux등의 다운로드판을 다운받을 수 있다.
다운받은 zip파일을 해제하고 bin폴더에 들어가면 activemq.bat파일이 있다. 이 파일을 cmd로 실행한다.
(Spring in action책에는 이 분이 빠져 있어서 Connection refused가 발생 했었다.)
4.테스트코드 작성
위의 코드를 실행키면 된다.
<<다음은 복사하기 위한 코드>>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jms</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-all</artifactId>
<version>5.7.0</version>
</dependency>
<<jms-context.xml>>
<?xml version=”1.0″ encoding=”UTF-8″?>
<beans xmlns=”http://www.springframework.org/schema/beans” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xmlns:p=”http://www.springframework.org/schema/p” xsi:schemaLocation=”http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/jms
http://www.springframework.org/schema/jms/spring-jms.xsd http://activemq.apache.org/schema/core
http://activemq.apache.org/schema/core/activemq-core.xsd”>
<!– JMS 설정 –>
<bean id=”connectionFactory” class=”org.apache.activemq.ActiveMQConnectionFactory”>
<property name=”brokerURL” value=”tcp://localhost:61616″ />
</bean>
<bean id=”destination” class=”org.apache.activemq.command.ActiveMQQueue”>
<constructor-arg value=”myMessageQueue” />
</bean>
<bean id=”jmsTemplate” class=”org.springframework.jms.core.JmsTemplate”>
<property name=”connectionFactory” ref=”connectionFactory” />
<property name=”defaultDestination” ref=”destination” />
</bean>
</beans>
<<JMS.java>>
public class Jms {
public static void main(String[] args) throws JMSException {
ApplicationContext context = new ClassPathXmlApplicationContext(“jms-context.xml”, Jms.class);
JmsTemplate jmsTemplate = (JmsTemplate) context.getBean(“jmsTemplate”);
jmsTemplate.send(new MessageCreator() {
public ObjectMessage createMessage(Session session) throws JMSException {
ObjectMessage message = session.createObjectMessage();
message.setObject(“My first Message”);
return message;
}
});
System.out.println(“MESSAGE SENT TO myMessageQueue”);
Message receivedMessage = jmsTemplate.receive(“myMessageQueue”);
ObjectMessage msg = (ObjectMessage) receivedMessage;
System.out.println(“Message Received :” + msg.getObject().toString());
}
}
출처: http://dedup.me/blog/?p=3063