2014-03-25 7 views
1

JSON 데이터를 처리하는 Struts Action이 있습니다.
이 데이터는 GSON을 사용하여 기본 요소가있는 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; 
    } 
} 

그리고이 객체 직렬화 코드의 일부이다 (나는 getter 및 setter omited) : 바람둥이에서

@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(); 
} 

을의 respose은 다음과 같습니다

{"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

인코딩이 서로 다른 서버를 구성 할 수 있습니다. 시도해보십시오.

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();