Невозможно получить тело конверта SOAP с помощью Retrofit 2 и Simple XML Converter.Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Невозможно получить тело конверта SOAP с помощью Retrofit 2 и Simple XML Converter.

Сообщение Anonymous »

Я использую Retrofit 2.2.0 и Retrofit SimpleXML Converter 2.2.0. Я добавил SimpleXmlConverter в экземпляр Retrofit с помощью метода addConverterFactory.

Проблема в том, что когда я получаю ответ, он получает следующую ошибку


java.lang.RuntimeException: org.simpleframework.xml.core.ElementException: элемент «Body» не имеет совпадение в классе ResponseEnvelope в строке 1


Я должен получить такой XML-ответ:

Код: Выделить всё




3282
635E3DA9-7C02-4DB7-9653-E7688C66B02C




ResponseEnvelope.java

Код: Выделить всё

@Root(name = "soapenv:Envelope")
@Namespace(prefix = "soapenv", reference = "http://schemas.xmlsoap.org/soap/envelope/")
public class ResponseEnvelope {

@Element(name = "soapenv:Body", required = false)
private ResponseBody body;

public ResponseBody getBody() {
return body;
}

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

Код: Выделить всё

@Root(name = "soapenv:Body", strict = false)
public class ResponseBody {

@Element(name = "ns:cadastrarCredencialEmailResponse", required = false)
private ResponseData requestData;

public ResponseData getRequestData() {
return requestData;
}

public void setRequestData(ResponseData requestData) {
this.requestData = requestData;
}

}
ResponseData.java

Код: Выделить всё

@Root(name = "ns:cadastrarCredencialEmailResponse", strict = false)
@Namespace(prefix = "ns", reference = "http://business.curitiba.org")
public class ResponseData {

@Element(name = "ns:return", required = false)
private ResponseInfo info;

public ResponseInfo getInfo() {
return info;
}

public void setInfo(ResponseInfo info) {
this.info = info;
}
}
ResponseInfo.java

Код: Выделить всё

@Root(name = "ns:return", strict = false)
@NamespaceList({
@Namespace(prefix = "ax2471", reference = "http://saidas.curitiba.org/xsd"),
@Namespace(prefix = "ax2469", reference = "http://entities.curitiba.org/xsd"),
@Namespace(prefix = "xsi", reference = "http://www.w3.org/2001/XMLSchema-instance"),
@Namespace(prefix = "ax2467", reference = "http://entradas.curitiba.org/xsd")
})
public class ResponseInfo {

@Element(name = "ax2471:codigoAtivacao", required = false)
private String codigoAtivacao;
@Element(name = "ax2471:idCredencial", required = false)
private String idCredencial;

public String getCodigoAtivacao() {
return codigoAtivacao;
}

public void setCodigoAtivacao(String codigoAtivacao) {
this.codigoAtivacao = codigoAtivacao;
}

public String getIdCredencial() {
return idCredencial;
}

public void setIdCredencial(String idCredencial) {
this.idCredencial = idCredencial;
}
}
Я думаю, проблема в классе ResponseInfo, и я не знаю, как поместить в него атрибут xsi:type. Кто-нибудь может мне помочь?


Подробнее здесь: https://stackoverflow.com/questions/434 ... -converter
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»