Utf 8 服务器中带有CDATA的Xstream获得IOException,但在Eclipse中工作

Utf 8 服务器中带有CDATA的Xstream获得IOException,但在Eclipse中工作,utf-8,xstream,cdata,Utf 8,Xstream,Cdata,我已经搜索并获得了为Axstream添加CDATA标记的解决方案,它在我的机器上的Eclipse中运行良好。然而,在我将代码部署到tomcat服务器之后,它总是失败,在toXMLt、writer或toXMLt出现IOException,我也尝试将编写器设置为UTF-8,但仍然没有成功 我的handle CDATA代码是: XStream xstream = new XStream( new XppDriver(){ @Override public HierarchicalStreamWrite

我已经搜索并获得了为Axstream添加CDATA标记的解决方案,它在我的机器上的Eclipse中运行良好。然而,在我将代码部署到tomcat服务器之后,它总是失败,在toXMLt、writer或toXMLt出现IOException,我也尝试将编写器设置为UTF-8,但仍然没有成功

我的handle CDATA代码是:

XStream xstream = new XStream( new XppDriver(){
@Override
public HierarchicalStreamWriter createWriter(Writer out) {
  return new PrettyPrintWriter(out){
  boolean cdata = false;
  @Override
  public void startNode(String name) {
    super.startNode(name);
    cdata = name.equalsIgnoreCase("imagestream");
  }
  @Override
  protected void writeText(QuickWriter writer, String text) {
     if(cdata && !text.isEmpty()){
         writer.write("<![CDATA[");
         writer.write(text);
         writer.write("]]>");
     }else {
         writer.write(text);
  }
 }
};
}
}); 

ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
PrintWriter writer = new PrintWriter(new OutputStreamWriter(outputStream, Charset.forName("UTF-8")));

xstream.toXML(t,writer);
xml = outputStream.toString("UTF-8");

请添加抛出的IOException的完整stacktrace。我在系统日志中没有看到stacktrace异常,但得到的响应是IOException。我对它进行了调试和测试,只有在我删除了那些重写方法之后,它才是好的。我通过创建一个新类MyPrettyPrintWriter解决了这个问题,并在新类中重写了方法,现在它可以工作了。