串行器SimpleXML只是发送第一行

问题描述

| 我在尝试通过POST在Android和Servlet之间发送文件xml时遇到问题。我正在使用(简单XML)进行序列化。 我的servlet对Android做出了响应:
Serializer serial = new Persister();
OutputStream o = response.getoutputStream();

MyXML myXML = new MyXML();
myXML.setMyElement(\"test\");
serial.write(myXML,o);
应该将我的xml这样直接发送给客户端,
<MyXML>
  <MyElement>test</MyElement>
</MyXML> 
但是它只发送第一行。然后,在Android端会收到此异常,因为它无法获得Element的第二行。
WARN/System.err(490): org.simpleframework.xml.core.ElementException: Element \'MyElement\' does not have a match in class java.lang.class at line -1
我不明白为什么只在使用OutputStream时才对第一行进行序列化,因为当我保存文件而不发送时,它可以工作,
Serializer serial = new Persister();
File file = new File(\"MyPath\");

MyXML myXML = new MyXML();
myXML.setMyElement(\"test\");
serial.write(myXML,file);
我需要那样做而不是用字节做,只是为了避免设置响应内容的长度。 非常感谢, 编辑:添加MyXML.class 有MyXML.class,
package part.myApp;

import org.simpleframework.xml.Element;
import org.simpleframework.xml.Root;

@Root(name=\"MyXML\")
public class MyXML{

       @Element(name=\"MyElement\")
       private String a;

       public void setMyElement(String a){
           this.a=a;
       }

       public String getMyElement() {
          return a;           
       }
}
谢谢。     

解决方法

        私有访问\ a可能是一个问题。使用POJO选项:
@Root(name=\"MyXML\")
public class MyXML{
       private String a;

       @Element(name=\"MyElement\")
       public void setMyElement(String a){
           this.a=a;
       }

       @Element(name=\"MyElement\")
       public String getMyElement() {
          return a;           
       }
}
让我知道这是否适合您。