camel dozer exception

com.fasterxml.jackson.core.JsonParseException: Unrecognized token 'org': was expecting ('true', 'false' or 'null')
at [Source: org.apache.camel.converter.stream.CachedOutputStream$WrappedInputStream@533b8dc6; line: 1, column: 4]
at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:1702) ~[jackson-core-2.8.5.jar:2.8.5]
at com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:558) ~[jackson-core-2.8.5.jar:2.8.5]
at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._reportInvalidToken(ReaderBasedJsonParser.java:2835) ~[jackson-core-2.8.5.jar:2.8.5]
at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._handleOddValue(ReaderBasedJsonParser.java:1903) ~[jackson-core-2.8.5.jar:2.8.5]
at com.fasterxml.jackson.core.json.ReaderBasedJsonParser.nextToken(ReaderBasedJsonParser.java:749) ~[jackson-core-2.8.5.jar:2.8.5]
at com.fasterxml.jackson.databind.ObjectMapper._initForReading(ObjectMapper.java:3834) ~[jackson-databind-2.8.5.jar:2.8.5]
at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:3783) ~[jackson-databind-2.8.5.jar:2.8.5]
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2842) ~[jackson-databind-2.8.5.jar:2.8.5]

bug重现:在json转bean时产生。

jackson2ObjectMapperBuilder.build().readValue(exchange.getIn().getBody().toString(), PortfolioAnalytics.class);

解决办法:

转之前增加:
.convertBodyTo(String.class)
即可解决。
原因:
exchange.getIn().getBody()为流,数据的读取是以流的形式,不能直接转String。


posted @ 2018-12-03 11:07  朕也就是个普通人  阅读(300)  评论(0编辑  收藏  举报