나는 JNDI를 사용하여 ActiveMQ로 연결하기 만하면됩니다. JNDI를 통해 ActiveMQ 사용
나는 'example.A'라는 이름
대기열이있다.
ActiveMQ documentation touching JNDI에 따르면 JNDI를 통해 ConectionFactories와 Queues (Topics)를 사용하려면 jndi.properties 파일을 클래스 경로에 배치해야합니다. 내가 알고 있듯이 activeMQ 클래스 경로는 기본적으로 % activemq %/conf 디렉토리입니다. 나는 그것을 바꾸지 않았다. 그래서 나는 나의 큐에 대해이 속성이 있습니다
queue.MyQueue = example.A 나는 다음과 같이 JNDI 사용 ActiveMQ를위한 자바 클라이언트 클래스를 생성 한
:
Properties jndiParameters = new Properties() ; jndiParameters.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.activemq.jndi.ActiveMQInitialContextFactory"); jndiParameters.put(Context.PROVIDER_URL, "tcp://localhost:61616"); Context context = new InitialContext(jndiParameters); ConnectionFactory connectionFactory = (ConnectionFactory) context.lookup("ConnectionFactory"); Queue queue = (Queue) context.lookup("MyQueue");
을 하지만 그것은 내 큐를 찾을 수 없습니다 예외를 throw합니다 : javax.naming.NameNotFoundException : MyQueue
내 실수는 어디 있습니까?
비슷한 문제가 있습니다. jndi url 및 연결 팩토리를 구성 할 수 있지만 추가 속성을 제공 할 수 없습니다. 이 방법은 큐 엔드 포인트가 정의되지 않은 것 같습니다. dynamicQueue/Test를 사용하면 작동하지만 정적으로 명명 된 대상을 처리 할 수 있어야합니까? – eckes