Apache верблюжий маршрут в Пойо - PullRequest
0 голосов
/ 17 февраля 2020

У меня есть экземпляр учетной записи не в нужном мне формате. Я пробую верблюда, но просто не понимаю основы. У меня есть успешно отформатированный экземпляр, и я отображаю его в журнале. Я пытался извлечь данные из тела с помощью процессора и непосредственно в POJO. POJO использует определения фиксированной длины. Что необходимо сделать для передачи данных в базу данных мэйнфреймов. Пожалуйста, укажите мне направление.

Получено сообщение: 12 xZZ200ZZZZZZZ

public class AccountAddRoute extends RouteBuilder{
    public void configure() throws Exception {
        DataFormat bindy = new BindyFixedLengthDataFormat(AccountAddData.class);
        from("direct:input")
        .log("   In AccountAddRoute   ")        
        .marshal(bindy)     
        .log("Got message:${body}");
        .to(???????_)


My Apologies. Not a good explanation of what I am trying to do. 
I have An Account POJO that is being built thru FORM. I need to save 
it in 2 different formats. Incoming just the way it is and in a
fixed format to be sent to Mainframe. This is what I get from the form 

Code1=12          x , Code2=200

I initiate rout by sending body of form in accountAddData Instance 

producerTemplate.sendBody("direct:input", accountAddData);  

public class AccountAddRoute extends RouteBuilder{
    public void configure() throws Exception {
        DataFormat bindy = new BindyFixedLengthDataFormat(AccountAddData.class);
        from("direct:input")
        .log("   In AccountAddRoute   ")        
        .marshal(bindy)     
        .log("Got message:${body}");
        .to(???????_)

Just for Testing purposes my Account Bindy Pojo is below
    @DataField(pos =1, length=15, paddingChar='Z', trim=true, align="L")
    private String Code1;

    @DataField(pos =2, length=10, paddingChar='Z',  align="L")
    private String Code2;

When I log Body, I get >> 

Got message:12          xZZ200ZZZZZZZ

However, my question is how do I create the new Instance in the
BINDY Format SO I can use it 

==========
I did add processor and when I do display of body in processor >>

log.info("   In MyProcessor           =    " + exchange.getIn().getBody());
In MyProcessor           =    [B@3338b2b9
I was expecting to have the getter/setters available after getBody for the
accoountAddData instance. But obviously I don’t have a good understanding
of camel  
exchange.getIn().getBody().????


1 Ответ

0 голосов
/ 18 февраля 2020

Вы пытаетесь разархивировать входящие данные? Если это так, то вам нужно будет использовать следующий код.

  from("direct:input")
   .log("   In AccountAddRoute   ")
   .unmarshal(new BindyFixedLengthDataFormat(AccountAddData.class))
   .log("Got message:${body}");
   .to(???????_)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...