我有一个struts Action,它提供JSON数据 使用GSON从具有基本元素的POJO序列化该数据。
在localhost
中,使用Tomcat 6,系统工作正常,但是当我将应用程序部署到Weblogic 9时,来自servlet的结果不正常,生成的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中看到最后一个'}'丢失。
可能是什么原因?
答案 0 :(得分:0)
可以为不同的编码配置不同的服务器。尝试
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();