2014-09-04 4 views
0

Я использую netty компонент для связи сокетов между двумя системами, запрос и ответ.Apache Camel - от netty в файл

Это маршрут

<from uri="netty:tcp://localhost:61616?encoder=#encoder"/> 
<to uri="netty:tcp://localhost:61618?decoder=#decoder"/> 
<log message="Receive ${body}"> 
<to uri="file://data?fileName=data2&amp;charset=utf-8"/> 

Все, работает нормально, данные я отправляю это тип буфера, а также полученные ответы. Я могу видеть эти данные как String, используя log $ {body}, но в файле нет ничего, где предполагается хранить эти данные.

Я догадываюсь, что верблюд использует конвертер (от буфера к строке) для регистрации тела в виде обычного текста, но почему это не что-то сохраняет в файле, используя конвертер по умолчанию для этого ????

Я ценю любые комментарии о том, как это разрешить. Спасибо !!!

ответ

1

Поскольку ваш paylaod является ByteBuffer вам нужно явно преобразовать в любой строки или байт []

<from uri="netty:tcp://localhost:61616?encoder=#encoder"/> 
<to uri="netty:tcp://localhost:61618?decoder=#decoder"/> 
<convertBodyTo type="byte[]"/> 
<log message="Receive ${body}"> 
<to uri="file://data?fileName=data2&amp;charset=utf-8"/> 

Вы можете даже использовать тип = «java.lang.String»

Пожалуйста, обратитесь к ссылке http://camel.apache.org/type-converter.html

Надеюсь, это поможет ...

+0

Спасибо. Я был близок с помощью , который, конечно же, не работает: P. – Angel

Смежные вопросы