【发布时间】:2014-02-17 07:55:40
【问题描述】:
我在服务器端使用序列化,在安卓客户端使用反序列化作为通信协议。
使用的POJO定义为
@EntityTag(uri = "/t.do", layout_id = "teacher")
public class Teacher extends UIEntity{
private static final long serialVersionUID = (long)0x000010;
public Teacher() throws UIEntityFormatException {super();}
@ViewTag(view_id = "t_name")
private String name;
@ViewTag(view_id = "t_sur_name")
private String surName;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSurName() {
return surName;
}
public void setSurName(String surName) {
this.surName = surName;
}
}
EntityTag 和 ViewTag 是分开定义的。
在Server中用来写Object的代码是
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try {
final Teacher t = new Teacher();
t.setName("jacob");
t.setSurName("bush");
final ObjectOutputStream oos = new ObjectOutputStream(response.getOutputStream());
oos.writeObject(t);
oos.flush();
} catch (UIEntityFormatException e) {
e.printStackTrace();
}
}
和客户端用于接收此代码的代码
final ObjectInputStream objectInputStream = new ObjectInputStream(response.getEntity().getContent());
ret = (Result) objectInputStream.readObject();
objectInputStream.close();
使用了AndroidHttpClient。并且在客户端运行时会抛出 EntityTag.class 的 ClassNotFound。
Teacher、UIEntity 和注释都放在一个名为协议的模块中,客户端服务器模块依赖于它(我使用的是 Intellij IDEA 13)我无法弄清楚是什么导致了异常。
谢谢
【问题讨论】:
标签: java android serialization deserialization