Сериализованный объект с GSON не завершен должным образом

У меня есть действие Struts, которое обслуживает данные JSON.
Эти данные сериализуются из POJO с основными элементами, используя GSON.

В localhostв Tomcat 6 система работает правильно, но когда я развертываю приложение в Weblogic 9, результат от сервлета не в порядке, полученный JSON не завершается должным образом (он пропускает}).

Это Pojo (я опустил геттеры и сеттеры)

public class DMTestResponse
{
    private String codiError;
    private String descripcioError;
    private Dades dades = new Dades();

    public class Dades
    {
            private String dada1;
            private String dada2;
            private Integer dada3;
            private String dada4;
    }
}

И это часть кода, которая сериализует объект:

@Override
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException
{
    // Some things
    response.setContentType("application/json");
    ServletOutputStream os = response.getOutputStream();
    os.write(resp.toString().getBytes(), 0, resp.length());
    os.flush();
    os.close();
}

От tomcat, остаток - это:

{"codiError": "0", "dades": {"dada1":"bla", "dada2":"bla","dada3":"50";"dada4":"text llarg suspensió"}}

Но от WebLogic, это:

{"codiError": "0", "dades": {"dada1":"bla", "dada2":"bla","dada3":"50";"dada4":"text llarg suspensió"}

Как вы можете видеть, в weblogic, последний символ '} отсутствует.

В чем может быть причина?

1 ответ

Различные серверы могут быть настроены для разных кодировок. Пытаться

response.setContentType("application/json; charset=UTF-8");
ServletOutputStream os = response.getOutputStream();
String s = resp.toString();
byte[] ba = s.getBytes("UTF-8");
os.write(ba, 0, ba.length);
os.flush();
Другие вопросы по тегам