하늘색 서비스 버스에서 amqp를 사용하여 .NET 클라이언트에서 Java 클라이언트로 간단한 문자열 메시지를 보내려고합니다..NET에서 Azure ServiceBus를 통해 javax.jms.TextMessage를 보내려면 어떻게해야합니까?
message = new BrokeredMessage("this is a text string");
을하고 그것이 끝난 TextMessage (javax.jms.TextMessage)로 Java 클라이언트에 표시가 다음 documentation에 따르면 나는이 같은 중개 메시지를 보낼 수 있어야합니다. 그러나 내가 TextMessage로 Java에서 메시지를 캐스팅 할 때 jms.impl.BytesMessageImpl을 TextMessage로 변환 할 수 없다는 예외가 발생합니다. 누구든지 메시지가 TextMessage가 아닌 BytesMessage와 같은 이유를 알고 있습니까? docs BytesMessage의에 따르면
은 다음과 같이 구축 될 것입니다 :byte[] bytes = { 33, 12, 45, 33, 12, 45, 33, 12, 45, 33, 12, 45 };
message = new BrokeredMessage(bytes);
내가 뭘하고 있지 않다 ....
누구나이 같은 작업을 수행하는 방법을 알아?
[업데이트] 흥미롭게도, 내가 함께 내 연결 문자열의 transportType = AMQP 지정하지 않고 내 보내는 코드를 테스트했다. 매번 MessagingFactory 설정이 매번 올바른 전송 유형으로 설정된다는 것을 코드가 실행되는 동안 확인했습니다. 메시지를 사용한 전송 유형에 관계없이 Java 응용 프로그램에 BytesMessage로 도착합니다. 메시지의 바이트 보면 상관없이 메시지가 전송되는 동일한 결과를 알 수 없습니다 :
@ string 3http://schemas.microsoft.com/2003/10/Serialization/�&BLABLA this is a message
는 [UPDATE2] 나는 내 문제의 근본 원인을 파악. 내 설치 프로그램에서 큐에 메시지를 전달하는 구독자가 있습니다. 이것이 메시지가 엉망이되는 곳입니다. 대기열에 AMQP 메시지를 직접 보내면 자바 애플리케이션에 TextMessage로 전송됩니다. AMQP를 통해 주제에 메시지를 보내면 구독자 (필터 포함)를 통해 내 대기열로 전달되고 BytesMessage로 변환됩니다.
그럼 제대로 작동하려면 어떻게해야합니까? 이 작동하도록 대기열로 전달되는 구독자를 설치하는 방법이 있습니까?
이것에 대한 뉴스? –