X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=server%2Fruntime%2Forg.argeo.server.json%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fserver%2Fjson%2FJsonServerSerializer.java;h=4f762f16867c8f92fd15b172bf73849b3e0507d9;hb=12cfed09974f82584c66c460500b5b3a61789e7e;hp=1c38bbe15f0775e1fce5fc55ecbaa993d50aa5c5;hpb=00ae7654c948e62c35ef88e7d8d528965d5e0371;p=lgpl%2Fargeo-commons.git diff --git a/server/runtime/org.argeo.server.json/src/main/java/org/argeo/server/json/JsonServerSerializer.java b/server/runtime/org.argeo.server.json/src/main/java/org/argeo/server/json/JsonServerSerializer.java index 1c38bbe15..4f762f168 100644 --- a/server/runtime/org.argeo.server.json/src/main/java/org/argeo/server/json/JsonServerSerializer.java +++ b/server/runtime/org.argeo.server.json/src/main/java/org/argeo/server/json/JsonServerSerializer.java @@ -1,6 +1,7 @@ package org.argeo.server.json; import java.io.IOException; +import java.io.StringWriter; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -20,22 +21,45 @@ public class JsonServerSerializer implements ServerSerializer { private JsonFactory jsonFactory = new JsonFactory(); private ObjectMapper objectMapper = new ObjectMapper(); - private Boolean prettyPrint = true; + private Boolean prettyPrint = false; + + // private String encoding = "UTF8"; public void serialize(Object obj, HttpServletRequest request, HttpServletResponse response) { JsonGenerator jsonGenerator = null; try { response.setContentType("application/json"); + // response.setHeader("Content-Encoding", "UTF-8"); + + StringWriter stringWriter = null; + if (log.isTraceEnabled()) { + stringWriter = new StringWriter(); + JsonGenerator jsonGeneratorLog = jsonFactory + .createJsonGenerator(stringWriter); + jsonGeneratorLog.useDefaultPrettyPrinter(); + objectMapper.writeValue(jsonGenerator, obj); + jsonGeneratorLog.close(); + } + // jsonGenerator = jsonFactory.createJsonGenerator(response + // .getOutputStream(), JsonEncoding.valueOf(encoding)); jsonGenerator = jsonFactory.createJsonGenerator(response .getWriter()); + if (prettyPrint) jsonGenerator.useDefaultPrettyPrinter(); objectMapper.writeValue(jsonGenerator, obj); jsonGenerator.close(); + + if (stringWriter != null) { + if (log.isTraceEnabled()) + log.debug(stringWriter.toString()); + response.getWriter().append(stringWriter.toString()); + } + } catch (Exception e) { throw new ArgeoServerException("Cannot serialize " + obj, e); } finally {