JMS 큐 리스너에 메시지를 송신하는 Java 코드 삽입

스니펫 보기를 사용하여 JMS 큐 리스너에 텍스트 메시지를 송신하는 Java™ 코드를 삽입하십시오. 대부분의 경우 JMS 큐 리스너는 메시지 구동 Bean입니다.

시작하기 전에

이 단계를 수행하기 전에 JMS 리스너, 메시지 큐 및 연결 팩토리를 사용하여 애플리케이션 서버를 올바로 구성하십시오.

이 태스크 정보

삽입된 Java 코드는 큐 연결 팩토리 참조와 사용자가 제공하는 큐 이름 참조를 사용하여 JMS 큐 리스너에 메시지를 송신합니다. setText() 메소드에서 매개변수의 값을 업데이트하여 메시지의 텍스트를 변경할 수 있습니다.

JMS 큐 리스너에 메시지를 송신하는 스니펫 삽입 예제

스니펫을 삽입하기 전에는 다음과 같습니다.
public class Main {

	public void sendMyMessage() {
		// insert snippet here
		
	}
	
}
커서가 sendMyMessage 메소드에 있는 스니펫 삽입 후는 다음과 같습니다.
import com.ibm.etools.service.locator.ServiceLocatorManager;
import javax.jms.*;
import javax.naming.*;
public class Main {

	private final static String STATIC_CONNECTION_FACTORY_REF_NAME = "queueconnectionfactoryreference";
	private final static String STATIC_QUEUE_REF_NAME = "queuename";
	public void sendMyMessage() {
		// insert snippet here
		send_queuenameMessage();
	}
	
	protected void send_queuenameMessage() {
		try {
			QueueConnectionFactory qConnectionFactory = ServiceLocatorManager
				.lookupQueueConnectionFactory(STATIC_CONNECTION_FACTORY_REF_NAME);
			Queue queue = ServiceLocatorManager
				.lookupQueue(STATIC_QUEUE_REF_NAME);
			QueueConnection qConnection = qConnectionFactory
				.createQueueConnection();
			QueueSession qSession = qConnection.createQueueSession(false,
				Session.AUTO_ACKNOWLEDGE);
			QueueSender sender = qSession.createSender(queue);
			TextMessage message = qSession.createTextMessage();
			message.setText("Foo Sample Queue message");
			sender.send(message);
			sender.close();
			qSession.close();
			qConnection.close();
		} catch (JMSException jmse) {
			// TODO Auto-generated catch block
			jmse.printStackTrace();
		}
}
}

프로시저

  1. Java EE 퍼스펙티브에서 코드 스니펫을 추가할 Java 파일을 Java 편집기에서 열고 코드를 삽입할 Java 파일의 지점에 커서를 놓으십시오.
  2. 스니펫 보기에서 EJB 드로어를 펼치고 JMS 큐 리스너로 메시지 송신을 두 번 클릭하십시오. 메시지 구동 Bean 큐 유형 서비스 삽입 마법사가 열립니다.
  3. 메시지의 EJB 참조를 선택하고 다음을 클릭하십시오.
  4. 제공업체 URL이름 서비스 유형을 입력하여 큐 연결 팩토리 및 큐 이름의 자원 참조를 찾으십시오. 클라이언트와 리스너가 동일한 애플리케이션 서버 컨테이너에 있는 경우 이 참조에서 찾아보기 수행 시 기본 컨텍스트 특성 사용을 선택할 수 있습니다.
  5. 다음을 클릭하십시오.
  6. 큐 연결 팩토리의 자원 참조를 선택하십시오. 참조를 아직 작성하지 않은 경우 새 큐 연결 팩토리 참조를 클릭하십시오. javax.jms.QueueConnectionFactory 자원 참조를 정의할 수 있는 참조 추가 마법사가 열립니다.
  7. 완료를 클릭하여 참조 추가 마법사를 종료하고 다음을 클릭하십시오.
  8. 큐 이름의 자원 참조를 선택하십시오. 참조를 아직 작성하지 않은 경우 새 큐 이름 참조를 클릭하십시오. javax.jms.Queue 자원 참조를 정의할 수 있는 참조 추가 마법사가 열립니다.
  9. 완료를 클릭하십시오.

결과

참고: 편집한 Java 클래스가 속한 각 엔터프라이즈 애플리케이션에 serviceLocatorMgr.jar 파일이 유틸리티 JAR 파일로 추가됩니다. 이 serviceLocator.jar 파일에는 삽입된 Java 코드 스니펫에서 사용되는 ServiceLocatorManager 클래스가 있습니다. 이 클래스는 홈 인터페이스 및 InitialContexts의 찾아보기를 최적화하고 전체 애플리케이션을 한 번만 찾아봅니다. 유틸리티 JAR 파일이 추가되므로 모듈 또는 Java 파일이 속한 Java 유틸리티 프로젝트에 대해 serviceLocator.jar 파일의 Java JAR 종속성이 추가됩니다.

ServiceLocatorManager 클래스에는 홈 인터페이스를 찾아볼 때 발생하는 오류 상태에 대한 특정 오류 핸들러를 지정하는 데 사용할 수 있는 setErrorHandler(ServiceLocatorErrorHandler 핸들러)라고 하는 정적 메소드가 있습니다. 기본 핸들러는 처리된 예외에서 간단하게 printStackTrace()를 호출합니다.


피드백