HI は、Android アプリケーションから Web サービスを呼び出そうとしています。
Person
Android アプリケーションから呼び出し元の Web サービスにシリアライズ可能なオブジェクトを渡しています。サーバー側では、このシリアライズ可能なオブジェクトを取得し、そこでいくつかの変更を行っています。
しかし、問題は、Android アプリの実行時に次のような例外が表示されていることです。 java.lang.RuntimeException: Cannot serialize: com.test.android.Person@43950fe0
これを解決する方法がわかりません。どちらの側も、パラメーターの設定と取得にシリアライズ可能なオブジェクトを使用しています。
以下は、使用している Person クラスです
public class Person implements Serializable{
private String firstName;
private String lastame;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastame() {
return lastame;
}
public void setLastame(String lastame) {
this.lastame = lastame;
}
}
Android側の私のWebサービス実装クラス:
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
request.addProperty("person", person);
SoapSerializationEnvelope envelope =
new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.setOutputSoapObject(request);
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
androidHttpTransport.call(SOAP_ACTION, envelope);
SoapObject resultsRequestSOAP = (SoapObject) envelope.bodyIn;
シリアル化可能なオブジェクトを parameter として渡すと、この行でエラーが発生しandroidHttpTransport.call(SOAP_ACTION, envelope);
ますが、param が String、int などの通常のオブジェクトである場合、問題は発生しません。
この問題を解決する方法を教えてください。