2017-11-08 3 views
0

がありません。私は石鹸サービスのために改造を使用していますが、私はElement 'Body'にはエラーがありません。私はここで石鹸:) との良好ではないよ、私の応答と私のオブジェクト改装石鹸レスポンスsimpleframework要素 'Body'には、

<?xml version="1.0" encoding="utf-8"?> 
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <soap:Body> 
    <EncryptResponse xmlns="http://tempuri.org/"> 
     <EncryptResult>%%UmVxdWVzdElzVmFsaWQyOTowMToyMDE1IDE2OjMx%%</EncryptResult> 
    </EncryptResponse> 
    </soap:Body> 
</soap:Envelope> 

EncryptResponseEnvelope

@Root(name = "soap:Envelope") 
@NamespaceList({ 
     @Namespace(prefix = "xsi", reference = "http://www.w3.org/2001/XMLSchema-instance"), 
     @Namespace(prefix = "xsd", reference = "http://www.w3.org/2001/XMLSchema"), 
     @Namespace(prefix = "soap", reference = "http://schemas.xmlsoap.org/soap/envelope/") 
}) 
public class EncryptResponseEnvelope { 

    @Element(name = "soap:Body", required = false) 
    private EncryptResponseBody body; 

    public EncryptResponseBody getBody() { 
     return body; 
    } 

    public void setBody(EncryptResponseBody body) { 
     this.body = body; 
    } 
} 

EncryptResponseBody

@Root(name = "soap:Body", strict = false) 
public class EncryptResponseBody { 

    @Element(name = "EncryptResponse", required = false) 
    private EncryptResponseData encryptResponseData; 


    public EncryptResponseData getEncryptResponseData() { 
     return encryptResponseData; 
    } 

    public void setEncryptResponseData(EncryptResponseData encryptResponseData) { 
     this.encryptResponseData = encryptResponseData; 
    } 
} 

EncryptResponseData

@Root(name = "EncryptResponse", strict = false) 
@Namespace(reference = "http://tempuri.org/") 
public class EncryptResponseData { 

    @Element(name = "EncryptResult", required = false) 
    private String encryptResult; 

    public String getEncryptResult() { 
     return encryptResult; 
    } 

    public void setEncryptResult(String encryptResult) { 
     this.encryptResult = encryptResult; 
    } 
} 

、それは私のエラーです:com.package.chal.data.response.encrypt_response.EncryptResponseEnvelope クラス で試合を持っていません 要素「ボディ」:

org.simpleframework.xml.core.ElementException 1行目

どこでミスをしますか?

答えて

0

SOAPエンベロープ:

import org.simpleframework.xml.Element; 
import org.simpleframework.xml.Namespace; 
import org.simpleframework.xml.NamespaceList; 
import org.simpleframework.xml.Root; 

@Root(name="soap:Envelope", strict=false) 
@NamespaceList({ 
    @Namespace(reference="http://schemas.xmlsoap.org/soap/envelope/", prefix="soap"), 
    @Namespace(reference="http://www.w3.org/2001/XMLSchema", prefix="xsd"), 
    @Namespace(reference="http://www.w3.org/2001/XMLSchema-instance", prefix="xsi") 
}) 
public class Envelope { 

    @Element(name="Body") 
    private Body body; 

    public Body getBody() { 
     return body; 
    } 

    public void setBody(Body body) { 
     this.body = body; 
    } 
} 

SOAPボディ:

import org.simpleframework.xml.Element; 
import org.simpleframework.xml.ElementUnion; 
import org.simpleframework.xml.Namespace; 
import org.simpleframework.xml.Path; 
import org.simpleframework.xml.Root; 

@Root(strict = false) 
@Namespace(reference = "http://schemas.xmlsoap.org/soap/envelope/", prefix = "soap") 
public class Body { 
    // By using ElementUnion, you can re-use the Envelope/Body classes for 
    // a variety of messages... 
    @ElementUnion({ 
     // @Element(name="login", type=Login.class), 
     @Element(name = "EncryptResponse", type = EncryptResponse.class) }) 
    public Object payload; 
} 

SOAPペイロード:

import org.simpleframework.xml.Element; 
import org.simpleframework.xml.Namespace; 
import org.simpleframework.xml.Root; 

@Root 
@Namespace(reference="http://tempuri.org/") 
public class EncryptResponse { 
    @Element 
    public String EncryptResult; 
} 

私はこの解決策をテストし、それがシリアル化/デシリアライズの両方で動作します。

関連する問題