android에서 Ksoap2의 KvmSerializable을 구현하는 클래스 내에 java.util.List의 목록을 어떻게 보낼 수 있습니까? 나는 다음과 같은 오류가 응용 프로그램을 실행할 때 :List를 KvmSerializable 클래스로 보내기
는java.lang.RuntimeException가 :
SoapSerializationEnvelope env = new SoapSerializationEnvelope(SoapEnvelope.VER11);
env.dotNet = false;
env.xsd = SoapSerializationEnvelope.XSD;
env.enc = SoapSerializationEnvelope.ENC;
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
Car car= new Car();
byte[] bytes = {1, 2, 3, 4, 5, 6, 7, 8, 9};
car.setBytes(bytes);
List<Door> list = new ArrayList<Door>();
car.setList(list);
PropertyInfo pi = new PropertyInfo();
pi.setName("car");
pi.setValue(car);
pi.setType(car.getClass());
request.addProperty(pi);
env.setOutputSoapObject(request);
env.addMapping(NAMESPACE, "Car", byte[].class, new MarshalBase64());
Car 클래스 :
public class Car implements KvmSerializable{
private byte[] bytes;
private List<Door> list;
public void setBytes(byte[] bytes) {
this.bytes= bytes;
}
public void setList(List<Door> list) {
this.list= list;
}
@Override
public Object getProperty(int arg0) {
switch(arg0){
case 0:
return bytes;
case 1:
return list;
}
return null;
}
@Override
public int getPropertyCount() {
// TODO Auto-generated method stub
return 2
}
@Override
public void getPropertyInfo(int ind, Hashtable ht, PropertyInfo info) {
switch(ind){
case 0:
info.type = MarshalBase64.BYTE_ARRAY_CLASS;
info.name = "bytes";
break;
case 1
info.type = List.class;
info.name = "list";
break;
default:break;
}
}
@Override
public void setProperty(int ind, Object val) {
switch(ind){
case 0:
bytes = (byte[])val;
break;
case 1:
list= (List<Door>)val;
break;
}
}
}
내 코드는 이것이다
를 직렬화 할 수 없습니다 Door 클래스가 KvmSerializable을 구현하면 누구든지 나를 도울 수 있습니까?
감사
ksoap2 초보자입니다. 당신이 어떻게 말해야 할 지 모르겠고, 어떻게 할 수 있습니까? 또는이 정보가있는 웹 사이트의 링크를 써주시겠습니까? – Juliancho9191
다음은 몇 가지 정보입니다 : [link] (https://code.google.com/p/ksoap2-android/wiki/CodingTipsAndTricks). – esentsov
오케이, 도와 주셔서 대단히 감사합니다. – Juliancho9191