2016-12-14 18 views
0

一个Python客户端发送和阵列等阿帕奇CXF ERROR:非标准令牌 '的NaN':使JsonParser.Feature.ALLOW_NON_NUMERIC_NUMBERS允许

"data": {"RPT_CC1_PHASE_MECH_TOT": [[1481625735000.0, NaN, 3.0], [1481625795000.0, NaN, 3.0], [1481625855000.0, NaN, 3.0], [1481625915000.0, NaN, 3.0] 

和Apache CXF是不能够解析

2016-12-14 11:35:06,666 [http-nio-9092-exec-3] WARN WebApplicationExceptionMapper - javax.ws.rs.InternalServerErrorException: org.codehaus.jackson.JsonParseException: Non-standard token 'NaN': enable JsonParser.Feature.ALLOW_NON_NUMERIC_NUMBERS to allow 
at [Source: [email protected]; line: 1, column: 401] 
    at org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.processRequest(JAXRSInInterceptor.java:242) 
    at org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.handleMessage(JAXRSInInterceptor.java:98) 
    at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:271) 

如何在APACHE CXF上启用此功能?

这一次似乎不起作用

jsonFactory.configure(JsonParser.Feature.ALLOW_NON_NUMERIC_NUMBERS, true); 

回答

0

发现自己:

春配置自定义提供

<jaxrs:providers> 
    <bean class="my.service.ApplicationJSONProvider" /> 
</jaxrs:providers> 

然后

public class ApplicationJSONProvider extends JacksonJsonProvider { 
    private static ObjectMapper mapper = new ObjectMapper(); 

    public ApplicationJSONProvider() { 
     super(mapper, BASIC_ANNOTATIONS); 
     mapper.configure(Feature.ALLOW_NON_NUMERIC_NUMBERS, true);