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());
}