Spring/3.x

Spring – JMS 적용하기

EnterKey 2016. 2. 22. 14:12
반응형

Spring framework에서 JMS(Java Message Service)로 처리해야 할 일이 생겨 설정을 기록해 둔다.

JMS를 테스트해 보기 위해서는 다음의 설정이 필요하다.

  1. pom.xml(maven)
  2. jms-context.xml(Spring 기존의 설정파일에 추가해도 된다.)
  3. activeMQ설치 및 실행
  4. 테스트코드 작성

 

1.pom.xml

pom.xml에는 다음의 코드를 추가.

daily1

 

또한 다음의 jar도 필요하다.

daily2

 

2.jms-context.xml(가칭)

daily3

 

3.activeMQ설치 및 실행.

인터넷에서 activeMQ로 검색해도 되고 http://activemq.apache.org/ 로 직접 찿아가도 된다. 여기서 download페이지에 가면 Window 혹은 Linux등의 다운로드판을 다운받을 수 있다.

다운받은 zip파일을 해제하고 bin폴더에 들어가면 activemq.bat파일이 있다. 이 파일을 cmd로 실행한다.

(Spring in action책에는 이 분이 빠져 있어서 Connection refused가 발생 했었다.)

daily4

 

4.테스트코드 작성

daily5

위의 코드를 실행키면 된다.

 

<<다음은 복사하기 위한 코드>>

<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

반응형