Неполная проблема с датой при разборе с помощью BindyCsvDataFormat - PullRequest
0 голосов
/ 27 марта 2020

Я использую Apache Camel, чтобы преобразовать CSV в JSON и отправить его в ActiveMQ по одному. Ниже приведен код:

final BindyCsvDataFormat bindy=new BindyCsvDataFormat(camelproject.EquityFeeds.class); 
public void configure() throws Exception {
    from("file:src/main/resources?fileName=data-sample_1.csv")
    .unmarshal(bindy)
    .split(body())
    .marshal()
    .json(JsonLibrary.Jackson)
    .to("file:src/main/resources/?fileName=emp.txt")
    .split().tokenize("},").streaming().to("jms:queue:json.upstream.queue");            
}

Ниже приведен мой класс POJO (EquityFeeds)

import java.util.Date;

@CsvRecord(separator = ",",skipFirstLine = true)
public class EquityFeeds {

//  @DataField(pos = 5, pattern="dd/MM/yyyy")  //"transactionDate":-61730055000000
//  @DataField(pos = 5, pattern = "dd/MM/YY")  //"transactionDate":1356805800000
    @DataField(pos = 5, pattern = "dd/MM/yy")  //"transactionDate":1384021800000
//  @DataField(pos = 5, pattern = "dd/mm/yy")  //"transactionDate":1357756860000
//  @DataField(pos = 5, pattern = "dd/MM/YYYY")  //"transactionDate":-61757098200000
//  @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd/MM/yy") // No output emp.txt class doesn't gets created.
    private Date transactionDate;

    // other getters and setters. 
   }

Я использую java .util.Date в качестве поля даты.

Мой образец CSV-файла:

externalTransactionId,clientId,securityId,transactionType,transactionDate,marketValue,sourceSystem,priorityFlag
SAPEXTXN1,GS,ICICI,BUY,23/11/13,101.9,BLO,Y
SAPEXTXN2,AS,REL,SELL,20/11/13,121.9,BLO,N
SAPEXTXN3,AP,HINDALCO,DEPOSIT,19/11/13,120,BLO,Y
SAPEXTXN4,HJ,RELIND,WITHDRAW,30/11/13,230,BLO,N
SAPEXTXN5,GS,RELIND,WITHDRAW,26/11/13,330,BLO,Y
SAPEXTXN6,AP,ICICI,SELL,25/11/13,100,BLO,Y

Я использую следующую версию: Camel Core: 3.1.0 Camel Компонент: 1.4.0 Camel Jackson- xml: 3.1.0 Camel -jackson: 3.1.0 jackson-core: 2.10.3 camel-bindy: 3.1.0

Я пробовал различные варианты с @ DataField , как показано в моем классе POJO выше, но безуспешно , Я даже пытался @ JsonFormat , но безуспешно. Я также искал net. В крайнем случае я пишу этот пост. Я не смог. Я чувствую себя действительно расстроенным и подавленным. Пожалуйста, помогите. Я застрял, и из-за этой проблемы мой JSON потребитель также выдает ошибки, так как он не может проанализировать TransactionsDate . Ошибка: com.google.gson.JsonSyntaxException: 1356805800000

JSON сообщение успешно отправляется в очередь ActiveMQ. Единственным выпуском является неправильный формат даты .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...