2016-07-28 1 views
0

Camel 설명서의 JMS 페이지와 많은 관련 SO 질문 such as this one을 참조했지만 구현에 대한 포괄적 인 목록을 찾을 수 없습니다.JMS 대기열에서 메시지를 수신하기 위해 낙타로 경로를 구현하려면 어떻게해야합니까?

저는 Camel과 Weblogic과 함께 Spring XML을 사용하고 있습니다. 다음 이름으로 테스트 대기열을 만들었습니다.

서버 : TestJMSServer, 모듈 : TestJMSModule, 대기열 : TestJMSQueue, CF : TestConnectionFactory.

낙타 문서에 따르면, 내 경로는 다음과 비슷한 모습이 될 것입니다

<camel:route id="test"> 
     <camel:from uri="jms:TestJMSQueue" /> 
     <camel:to uri="file:/Users/...." /> 
</camel:route> 

이 나에게 "ConnectionFactory를 지정해야합니다"라는 오류를 제공합니다. 그래서 정확하게이 대기열을 듣기 위해 applicationContext.xml에 추가해야하는 것은 무엇입니까?

+0

당신이 위치를 참조하는 어떤 콩을 설정 한 필요합니다 또는 대기열에 대한 연결 정보가 있습니까? 커넥션 팩토리는 Camel JMS 컴포넌트에게 큐와의 통신 방법을 알려주는 JMS 커넥션 팩토리가 없다는 것을 의미한다. 전체 컨텍스트 xml을 제공 할 수 있습니까? 아니면 최소한 JMS 대기열에 대한 낙타 또는 스프링 빈을 참조 할 수 있습니까? – alexanderific

+0

질문에 jms bean 정의를 추가하십시오. – Jayaraj

답변

1

Camel의 jms-component에 사용할 JMS 연결 팩토리를 알려줘야합니다. WebLogic을 사용한다면 jndi에서 얻을 가능성이 큽니다.

아래의 예제에서 저는 스프링의 jee:jndi-lookup을 사용하여 연결 팩토리를 찾고 있습니다 (WebLogic에서 사용할 수있는 이름 일 수도 있습니다). 조회 된 공장은 id가 myConnectionFactory 인 봄 콩으로 제공됩니다.

이 연결 팩토리는 낙타의 JmsComponent에 대한 connectionFactory 속성에 사용됩니다. id 속성은 jms입니다. 이것은 귀하의 경로에서 사용될 낙타 종점 URI 체계를 정의합니다.

<beans xmlns="http://www.springframework.org/schema/beans" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jee="http://www.springframework.org/schema/jee" 
     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd 
      http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd"> 


    <jee:jndi-lookup id="myConnectionFactory" jndi-name="jms/connectionFactory"/> 

    <route id="test" xmlns="http://camel.apache.org/schema/spring"> 
     <from uri="jms:TestJMSQueue"/> 
     <to uri="file:/Users/...."/> 
    </route> 


    <bean id="jms" class="org.apache.camel.component.jms.JmsComponent"> 
     <property name="connectionFactory" ref="myConnectionFactory"/> 
     <!-- more configuration required based on your requirements --> 
    </bean> 

    <!-- 
    example uses invm amq broker: 

    <bean id="anothercnf" class="org.apache.activemq.ActiveMQConnectionFactory"> 
     <property name="brokerURL" value="vm://mybroker"/> 
    </bean> 
    --> 
</beans> 

중요 참고 : 당신은 조정이 더 (설정 거래, 설정 동시 소비자 가능한 구성 스프링 JMS 연결 풀)