낙타에서 요청/응답 jms 소비자를 얻으려고합니다. 들어오는 메시지가 수신되었고 그 낙타가 응답을 보냈지 만 메시지는 마샬링되지 않습니다. 나는에서와 ActiveMQ를 모든 메시지를 마샬링하는 인터셉터를 사용하고Camel intercept/marshal jms reply
는
OsdrDataFormat osdrDataFormat = new OsdrDataFormat();
interceptFrom("activemq:*").unmarshal(osdrDataFormat);
interceptSendToEndpoint("activemq:*").marshal(osdrDataFormat);
이 (메시지를 마샬링 할 때 내가 JMSType을 채울 수 있도록 내가 JacksonDataFormat을 확장합니다.) 엔드 포인트 정상 편도
교환이 (예를 들어)
from("activemq:queue:test").bean(TestComponent.class, "test");
from("direct:test-input").to("activemq:queue:test");
작업 있지만 나는이 경로를 사용할 때
from("activemq:queue:test").bean(TestComponent.class, "test");
메시지를 JMSReplyTo 메시지와 함께 테스트 대기열로 보냅니다 (activemq 관리 페이지 사용). 낙타가 응답 메시지를 보냈지 만 json에 마샬링되지 않았 음을 알 수 있습니다.
marshal을 수동으로 추가해도 작동하지만 인터셉터를 사용하면 추상 RouteBuilder를 만들고 각 경로에 기본적으로 인터셉터를 추가 할 수 있습니다.
from("activemq:queue:test").bean(TestComponent.class, "test").marshal(osdrDataFormat);
누구나 해결 방법을 알고 있습니까? 또는 activemq와의 모든 메시지가 마샬링되는지 확인하는 더 좋은 방법일까요?
이 스레드를 찾았 어 : Apache Camel inOut routes, out exchange marshaling/unmarshaling with jaxb 하지만 대답은 수동 마샬 러를 사용하는 것입니다.
(아주) 늦게 답변을 드려 죄송합니다. 수동 마샬링 및 비 마샬을 사용하는 것이 최선의 해결책이었습니다. 마샬링 전에 무언가를하고 싶습니다. –