【发布时间】:2014-04-17 07:32:19
【问题描述】:
我试图将SoapObject 或Envelope 存储在一个文件中,但认为它不可序列化,它没有存储在文件中。
我的目标是将SoapObject 或Envelope 一次存储在文件中,而不是构建一个新的SoapObject 或Envelope,而是从存储的文件中获取该对象。
我已经使用easywsdl.com 站点创建了所有方法。它有其自定义的ExtendedSoapSerializationEnvelope,具有以下定义。
public class ExtendedSoapSerializationEnvelope extends
SoapSerializationEnvelope
{
//Envelop code
}
我使用以下模式使信封可序列化。
public class ExtendedSoapSerializationEnvelope extends
SoapSerializationEnvelope implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
}
并在文件中使用以下代码编写。
public static void writeEnvelope(Object object) throws IOException {
File file = new File(Environment.getExternalStorageDirectory()
.getAbsoluteFile() + File.separator + "envelope.txt");
FileOutputStream fos = new FileOutputStream(file);
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(object);
oos.close();
fos.close();
}
它成功写入Envelope,但是当我尝试使用以下代码从文件中读取该对象时,
public static Object readEnvelope() throws IOException,
ClassNotFoundException {
File file = new File(Environment.getExternalStorageDirectory()
.getAbsoluteFile() + File.separator + "envelope.txt");
FileInputStream fis = new FileInputStream(file);
ObjectInputStream ois = new ObjectInputStream(fis);
Object object = ois.readObject();
return object;
}
它触发以下异常,
java.io.InvalidClassException: org.ksoap2.serialization.SoapSerializationEnvelope; IllegalAccessException
有没有人有想法来实现这一目标?还有其他方法吗?
【问题讨论】:
-
你能从这个问题中得到解决方案吗?
标签: java android serialization ksoap2