android-xmlrpc无法序列化自定义对象

时间:2012-01-30 14:20:22

标签: android serialization xml-rpc

我正在尝试序列化AnswerObject(所以自定义对象)。但是当运行logcat时会给出:

01-30 13:27:15.553: W/System.err(230): java.io.IOException: Cannot serialize ratedroid.BusinessModels.CourseQuestionAnswer@44f4a920 01-30 13:27:15.604: W/System.err(230): at org.xmlrpc.android.XMLRPCSerializer.serialize(XMLRPCSerializer.java:105) 01-30 13:27:15.604: W/System.err(230): at org.xmlrpc.android.XMLRPCSerializer.serialize(XMLRPCSerializer.java:67) 01-30 13:27:15.604: W/System.err(230): at org.xmlrpc.android.XMLRPCCommon.serializeParams(XMLRPCCommon.java:36) 01-30 13:27:15.604: W/System.err(230): at org.xmlrpc.android.XMLRPCClient.methodCall(XMLRPCClient.java:376) 01-30 13:27:15.604: W/System.err(230): at org.xmlrpc.android.XMLRPCClient.callEx(XMLRPCClient.java:287) 01-30 13:27:15.623: W/System.err(230): at org.xmlrpc.android.XMLRPCClient.call(XMLRPCClient.java:424) 01-30 13:27:15.623: W/System.err(230): at nl.purened.ratedroid.RDSC.sendAnswers(RDSC.java:61) 01-30 13:27:15.623: W/System.err(230): at nl.purened.ratedroid.QuestionActivity$1.onClick(QuestionActivity.java:94) 01-30 13:27:15.623: W/System.err(230): at android.view.View.performClick(View.java:2364) 01-30 13:27:15.643: W/System.err(230): at android.view.View.onTouchEvent(View.java:4179) 01-30 13:27:15.643: W/System.err(230): at android.view.View.dispatchTouchEvent(View.java:3709) 01-30 13:27:15.643: W/System.err(230): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 01-30 13:27:15.643: W/System.err(230): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 01-30 13:27:15.653: W/System.err(230): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 01-30 13:27:15.663: W/System.err(230): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 01-30 13:27:15.663: W/System.err(230): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1659) 01-30 13:27:15.663: W/System.err(230): at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1107) 01-30 13:27:15.663: W/System.err(230): at android.app.Activity.dispatchTouchEvent(Activity.java:2061) 01-30 13:27:15.673: W/System.err(230): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1643) 01-30 13:27:15.683: W/System.err(230): at android.view.ViewRoot.handleMessage(ViewRoot.java:1691) 01-30 13:27:15.683: W/System.err(230): at android.os.Handler.dispatchMessage(Handler.java:99) 01-30 13:27:15.683: W/System.err(230): at android.os.Looper.loop(Looper.java:123) 01-30 13:27:15.683: W/System.err(230): at android.app.ActivityThread.main(ActivityThread.java:4363) 01-30 13:27:15.693: W/System.err(230): at java.lang.reflect.Method.invokeNative(Native Method) 01-30 13:27:15.723: W/System.err(230): at java.lang.reflect.Method.invoke(Method.java:521) 01-30 13:27:15.723: W/System.err(230): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 01-30 13:27:15.723: W/System.err(230): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 01-30 13:27:15.723: W/System.err(230): at dalvik.system.NativeStart.main(Native Method) ERROR。

目标代码:

package ratedroid.BusinessModels;

import java.io.Serializable;

/**
 * The Class Answer.
 */
public class Answer implements Serializable{

/** The Constant serial version uid. */
private static final long serialVersionUID = -6084272301017779054L;

/** The id. */
private int id;

/** The answer. */
private String answer;

/**
 * Instantiates a new answer.
 */
public Answer() {}

/**
 * Instantiates a new answer.
 *
 * @param answer the answer
 */
public Answer(String answer) {
    super();
    this.answer = answer;
}

/**
 * Gets the serial version uid.
 *
 * @return the serial version uid
 */
public static long getSerialversionuid() {
    return serialVersionUID;
}

/**
 * Gets the id.
 *
 * @return the id
 */
public int getId() {
    return id;
}

/**
 * Gets the answer.
 *
 * @return the answer
 */
public String getAnswer() {
    return answer;
}

/**
 * Sets the id.
 *
 * @param id the new id
 */
public void setId(int id) {
    this.id = id;
}

/**
 * Sets the answer.
 *
 * @param answer the new answer
 */
public void setAnswer(String answer) {
    this.answer = answer;
}
}

CourseQuestionAwnser代码:

package ratedroid.BusinessModels;

import java.io.Serializable;

// 
/**
 * The Class CourseQuestionAnswer.
 */
public class CourseQuestionAnswer implements Serializable{

/** The Constant serialVersionUID. */
private static final long serialVersionUID = 1873204218188105607L;

/** The id. */
private int id;

/** The course. */
private Course course;

/** The question. */
private Question question;

/** The answer. */
private Answer answer;

/**
 * Instantiates a new course question answer.
 */
public CourseQuestionAnswer() {}

/**
 * Instantiates a new course question answer.
 *
 * @param course the course
 * @param question the question
 * @param answer the answer
 */
public CourseQuestionAnswer(Course course, Question question, Answer answer) {
    super();
    this.course = course;
    this.question = question;
    this.answer = answer;
}

/**
 * Gets the serialversionuid.
 *
 * @return the serialversionuid
 */
public static long getSerialversionuid() {
    return serialVersionUID;
}

/**
 * Gets the id.
 *
 * @return the id
 */
public int getId() {
    return id;
}

/**
 * Gets the course.
 *
 * @return the course
 */
public Course getCourse() {
    return course;
}

/**
 * Gets the question.
 *
 * @return the question
 */
public Question getQuestion() {
    return question;
}

/**
 * Gets the answer.
 *
 * @return the answer
 */
public Answer getAnswer() {
    return answer;
}

/**
 * Sets the id.
 *
 * @param id the new id
 */
public void setId(int id) {
    this.id = id;
}

/**
 * Sets the course.
 *
 * @param course the new course
 */
public void setCourse(Course course) {
    this.course = course;
}

/**
 * Sets the question.
 *
 * @param question the new question
 */
public void setQuestion(Question question) {
    this.question = question;
}

/**
 * Sets the answer.
 *
 * @param answer the new answer
 */
public void setAnswer(Answer answer) {
    this.answer = answer;
}
}

我无法在任何地方找到解决方案......

0 个答案:

没有答案