Java 序列化程序SimpleXML只发送第一行
我在尝试用POST在Android和servlet之间发送xml文件时遇到问题。我正在使用()进行序列化 我的servlet对Android做出响应:Java 序列化程序SimpleXML只发送第一行,java,android,xml,servlets,outputstream,Java,Android,Xml,Servlets,Outputstream,我在尝试用POST在Android和servlet之间发送xml文件时遇到问题。我正在使用()进行序列化 我的servlet对Android做出响应: Serializer serial = new Persister(); OutputStream o = response.getOutputStream(); MyXML myXML = new MyXML(); myXML.setMyElement("test"); serial.write(myXML, o); 它应该像这样将我的xm
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>
我不明白为什么在我使用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”的私人访问可能有问题:
让我知道这是否适合您。您可以发布MyXML类的外观以及简单的XML框架注释吗?如果我有更多信息,我可以提供帮助。我已经用MyXML.classe编辑了我的帖子,但仍然不起作用。我不知道为什么servlet响应只发送回第一个标记。我已经测试了客户端接收到的数据,它只是标签,其他什么都没有。我使用Simple 2.4.1是因为我在使用Android,2.5版本中有一个bug。我自己在一个项目中使用2.5.3版本。2.5版本有什么问题?你还收到同样的错误信息吗?我收到完全相同的错误信息。如果我使用2.5版本,我会遇到另一个错误:error/AndroidRuntime(1287):java.lang.VerifyError:org.simpleframework.xml.core.StructureBuilder。我在我的项目的一部分中使用过,在没有Android的情况下工作,我会遇到与2.5.3版本相同的错误。
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;
}
}
@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;
}
}