Как сериализовать / десериализовать объект LogEvent, используя ObjectMapper? - PullRequest
0 голосов
/ 09 января 2019

Привет! У меня есть объект LogEvent, используемый на стороне клиента для регистрации событий, и я хочу отправить его на сервер, используя REST API. Я преобразовываю объект LogEvent в строку json и отправляю его как полезную нагрузку через REST. На стороне сервера я использую Groovy, и когда я пытаюсь сделать objectMapper.readValue (), я получаю следующую ошибку.

com.fasterxml.jackson.databind.JsonMappingException: не удается найти десериализатор для неконкретного типа коллекции [тип коллекции; класс org.apache.logging.log4j.ThreadContext $ ContextStack, содержит [простой тип, класс java.lang.String]]

/// Client Side code. 
private final List<LogEvent> eventQueue = new LinkedList<>();
List<LogEvent> logToSend;
            eventsToSend = new ArrayList<>(eventQueue);

   String jsonLogStream = new String();
                ObjectMapper mapperObj = new ObjectMapper();

                try{
                    jsonLogStream =  mapperObj.writeValueAsString(logToSend);
                }catch (IOException e){
                    e.printStackTrace();
                }

                closeableHttpResponse = communicationManager.executeHttpPost(uri, Collections.emptyMap(), new ByteArrayInputStream(jsonLogStream.getBytes()), false);


//// In Groovy 
//         
String logstream = request.getJSON().toString()
//here I'm getting LogEvents converted to json

LogEvent[] events = mapper.readValue(logstream, LogEvent[].class )
// mapper.readvalue giving error mentioned. 

Я не могу преобразовать json обратно в объект, используя ObjectMapper. Спасибо за вашу помощь.

...