2

新しいオブジェクトをアップロードするたびに、空のオブジェクトがデータベースにコミットされ、設定したすべてのパラメーターが無視されます。

これがAndroid側です:

public void createGroupServ(String groupName)
{
    request = new SoapObject(NAMESPACE, "createGroup");

    Group gr = new Group();
    gr.setGroupId(1L);
    gr.setGroupName("xxxx");
    gr.setUsers(null);

    PropertyInfo object = new PropertyInfo();
    object.setName("arg0");
    object.setValue(gr);
    object.setType(gr.getClass());
    request.addProperty(object);

    envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 
    envelope.dotNet = false;
    envelope.setOutputSoapObject(request);
    envelope.addMapping(NAMESPACE, "group", new Group().getClass());

    androidHttpTransport = new HttpTransportSE(URL);
    androidHttpTransport.debug = true;

}

およびドメインクラスグループ:

public class Group implements KvmSerializable {
    private long groupId;
    private String groupName;
    private List<User> users = null;

...setter and getters ...
}

私のWSDLxml:

<xs:complexType name="group">
<xs:sequence>
<xs:element name="groupId" type="xs:long"/>
<xs:element name="groupName" type="xs:string" minOccurs="0"/>
<xs:element name="users" type="tns:user" nillable="true" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>

<xs:complexType name="createGroup">
<xs:sequence>
<xs:element name="arg0" type="tns:group" minOccurs="0"/>
</xs:sequence>
</xs:complexType>

グループ名パラメータを使用してオブジェクト全体をアップロードしない理由について何かアドバイスはありますか?

4

2 に答える 2

2

これを使って

SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
request.addproperty("arg0",gr);

また、これをメソッドに追加することを忘れないでください-

void customMethod(@WebParam(name = "arg0")String arg0)
于 2012-12-22T11:01:52.550 に答える
0

OK、これを修正しました。KvmSerializable私はインターフェースのメソッドを実装しませんでした-

public Object getProperty
public int getPropertyCount
public void getPropertyInfo
public void setProperty

ここで見つけることができます: http ://seesharpgears.blogspot.co.uk/2010/10/ksoap-android-web-service-tutorial-with.html

その上、私はそれが私のために機能しなかったので、別のクラスとして私のSOAPオブジェクト要求をしMainActivityました。

于 2012-12-22T11:30:41.067 に答える