2016-08-15 1 views
2

Java에서 간단한 AMQP 응용 프로그램을 만들려고합니다. 응용 프로그램은 두 클라이언트간에 숫자를 바운스해야합니다. 번호가 수신 될 때마다 클라이언트는 1을 추가하여 다른 클라이언트로 다시 보내야합니다. 그러나 예제를 전혀 사용할 수 없습니다. 나는 첫 번째 번호를 보낼 수는 있지만 결코받지 못한다. 브로커의 웹 인터페이스에서 연결 및 메시지가 전혀 표시되지 않습니다. 나는 잘못된 것을하고 있지만 그것이 무엇인지 알 수 없다. 바라건대 여기 누군가가 오류를 발견 할 수 있기를 바랍니다. 아래는 내가 작성한 코드입니다.Java QPID를 사용할 수 없습니다.

Messenger mng = Proton.messenger(); 
    mng.start(); 
    mng.subscribe("localhost:5672"); 

    Message msg = Proton.message(); 
    msg.setAddress("localhost:5672"); 
    msg.setSubject("foobar"); 


    if (args.length > 2 && args[2].equals("foo")) 
    { 
     System.out.println("Sending initial: 1"); 
     msg.setBody(new AmqpValue("1")); 
     mng.put(msg); 
     mng.send(); 
     System.out.println("Sent initial: 1"); 
    } 


    try 
    { 
     while (true) 
     { 
      mng.recv(1); 
      while(mng.incoming() > 0) { 
       Message message = mng.get(); 
       int consumed = Integer.parseInt(message.getBody().toString()); 
       System.out.println("Received: " + consumed); 
       consumed = consumed % 100; 
       if (consumed == 0) 
       { 
        long seconds = (System.currentTimeMillis() - start)/1000; 
        start = System.currentTimeMillis(); 
        System.out.println("Last hundred messages took (s): " + seconds); 
       } 

       msg.setBody(new AmqpValue(""+(consumed+1))); 
       mng.put(msg); 
       mng.send(); 
      } 
     } 
    } 
    catch (Exception e) 
    { 
     System.out.println("proton error: " + e.getMessage()); 
    } 

답변

0

글쎄, 난 완전히 내 방화벽을 해제하고 듣고 내 로컬 IP 주소에 가입하기 위해 코드를 조금 변경하고 나를 위해 잘 작동 :

Messenger mng = Proton.messenger(); 
mng.start(); 
mng.subscribe("amqp://~xxx.xxx.xxx.xxx"); 

Message msg = Proton.message(); 
msg.setAddress("amqp://yyy.yyy.yyy.yyy"); 
.... 
관련 문제