3

AndroidでSOAPWebサービスにアクセスしようとしています。

        AndroidHttpTransport httpTransport = new AndroidHttpTransport(URL);
        ...
        ...
        String result = (String) httpTransport.responseDump;

応答結果の文字列を以下のxml形式で取得しました。

<?xml version="1.0" encoding="UTF-8"?>
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <soapenv:Body>
            <sampleResponse xmlns="http://impl.test.com">
                <sampleReturn>
                    <clientNameList>
                        <clientNameList>
                            <clientID>1</clientID>
                        </clientNameList>
                        <clientNameList>
                            <clientID>2</clientID>
                        </clientNameList>
                    </clientNameList>
                    <message>SUCCESS</message>
                </sampleReturn>
            </sampleResponse>
        </soapenv:Body>
    </soapenv:Envelope>

Simple XML Serialization(simple-xml-2.6.6.jar)を使用して、このxmlをPojoに解析します。参照: ここ

        Persister persister = new Persister();
        UserResponse userResponse = persister.read(UserResponse.class, result);

今、私は例外を受け取りました

Element 'Body' does not have a match in class com.test.UserResponse at line 1

コード情報の詳細については、こちらをご覧ください

どうすればこれを修正できますか?

UserResponse.java(POJOクラス)

public class UserResponse {

private String message = null;

private Client[] clientNameList = null;

public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

public void setClientNameList(Client[] clientNameList) {
        this.clientNameList = clientNameList;
    }

    public Client[] getClientNameList() {
        return clientNameList;
    }
}

およびClient.java

public class Client {

private int clientID;

public void setClientID(int clientID) {
        this.clientID = clientID;
    }

    public int getClientID() {
        return clientID;
    }
}
4

1 に答える 1

0

あなたの対応には問題があります。<clientNameList>次々に 2 回取得しているため、XML の解析で問題が発生している可能性があります。したがって、それに応じて応答を変更することをお勧めします。

于 2012-08-24T04:43:26.560 に答える