0
우리는이 아파치 낙타 경로가와 비 정렬 화 교환 마샬링 밖으로 경로/아파치 낙타 입출력의 JAXB
from(commandDrop).marshal(jaxbDataFormat).to(jmsQueue);
from(jmsQueue).inOut("jms:doCommand?requestTimeout=500000");
from("jms:doCommand").unmarshal(jaxbDataFormat).beanRef("bean");
.... 우리가 넣어 노력이
class BeanClass {
public void doCommand(Command command, Exchange exchange){
{
command.run();
exchange.getOut().setBody(command);
}
}
같은 빈 클래스 메시지 및 GETT있는 전진 방향으로 노선에이
Object ret = template.requestBody(commandDrop, new TestCommand());
객체와 같은 경로에 대한 응답을 기다립니다 마샬링/언 마샬링 된 멋지다. 그러나 setBody 호출로 인해 java.io.NotSerializableException이 발생합니다. 경로를 다시 구성 할 때 동일한 jaxb 마샬링/언 마샬링을 사용하도록 구성 할 수 있습니까? My Command 클래스에는 직렬화 할 수없는 jaxb 생성 클래스 객체가 포함되어 있습니다. 그들은 마샬/언 마샬에 의해 정방향으로 잘 처리되며, 돌아 오는 길에있을 수 있다면 좋을 것입니다. 비교적 낙타에 익숙하지 않으므로 이것이 최선의 방법인지 확실하지 않습니다.
감사합니다.
아하 후 마샬링 할 수 있습니다. 이것은, 호출 측의 바이트 배열을 돌려줍니다. 어느 쪽이 좋을까, retCommand = (Command) jaxbContext.createUnmarshaller(). unmarshal (new ByteArrayInputStream (ret)); 고맙습니다! – Mustafa