Я использую 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. Единственным выпуском является неправильный формат даты .