- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
在使用 Retrofit 的 Soap Services 中解析响应时,我遇到了这个异常。我的异常如下
Failure: org.simpleframework.xml.core.ElementException: Element 'Body' does not have a match in class org.cainfo.arun.model.response.VerifyMobileResEnvelopeModel at line 1
这是我的请求和回复
我的要求
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://webservice.router.ees.com/">
<soapenv:Header/>
<soapenv:Body>
<web:verifyMobile>
<arg0>12345678</arg0>
</web:verifyMobile>
</soapenv:Body>
</soapenv:Envelope>
我的回应
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:verifyMobileResponse xmlns:ns1="http://webservice.router.ees.com/">
<return>name</return>
</ns1:verifyMobileResponse>
</soap:Body>
</soap:Envelope>
验证移动资源包络模型
@Root(name = "soap:Envelope")
@Namespace( prefix = "soap", reference = "http://schemas.xmlsoap.org/soap/envelope/")
public class VerifyMobileResEnvelopeModel {
@Element(name = "soap:Body", required = false)
private VerifyMobileResBodyModel verifyMobileResBodyModel;
public VerifyMobileResBodyModel getVerifyMobileResBodyModel() {
return verifyMobileResBodyModel;
}
public void setBody(VerifyMobileResBodyModel verifyMobileResBodyModel) {
this.verifyMobileResBodyModel = verifyMobileResBodyModel;
}
}
验证MobileResBodyModel
@Root(name = "soap:Body", strict = false)
public class VerifyMobileResBodyModel {
@Element(name = "ns1:verifyMobileResponse", required = false)
@Namespace(prefix = "ns1", reference = "http://webservice.router.ees.com/")
private VerifyMobileResDataModel verifyMobileResModel;
public VerifyMobileResDataModel getVerifyMobileResModel() {
return verifyMobileResModel;
}
public void setVerifyMobileResModel(VerifyMobileResDataModel verifyMobileResModel) {
this.verifyMobileResModel = verifyMobileResModel;
}
}
验证移动资源数据模型
@Root(name = "ns1:verifyMobileResponse", strict = false)
@Namespace(prefix = "ns1", reference = "http://webservice.router.ees.com/")
public class VerifyMobileResDataModel {
@Element(name = "return", required = false)
private String customerName;
public String getCustomerName() {
return customerName;
}
public void setCustomerName(String customerName) {
this.customerName = customerName;
}
}
方法
public void getResponse() {
VerifyMobileRqstDataModel mVerifyMobileRqstDataModel = new VerifyMobileRqstDataModel();
mVerifyMobileRqstDataModel.phoneNo = mobileNo;
VerifyMobileRqstBodyModel mVerifyMobileRqstBodyModel = new VerifyMobileRqstBodyModel();
mVerifyMobileRqstBodyModel.verifyMobileRqstDataModel = mVerifyMobileRqstDataModel;
VerifyMobileRqstEnvelopeModel mVerifyMobileRqstEnvelopeModel = new VerifyMobileRqstEnvelopeModel();
mVerifyMobileRqstEnvelopeModel.verifyMobileRqstBodyModel = mVerifyMobileRqstBodyModel;
Call<VerifyMobileResEnvelopeModel> call = webService.rqstVerifyMobileNo(mVerifyMobileRqstEnvelopeModel);
call.enqueue(new Callback<VerifyMobileResEnvelopeModel>() {
@Override
public void onResponse(Call<VerifyMobileResEnvelopeModel> call, Response<VerifyMobileResEnvelopeModel> response) {
if (response.isSuccessful() && response.body() != null) {
// String customerName = response.body().verifyMobileResBodyModel.verifyMobileResModel.customerName;
String customerName = response.body().getBody().getVerifyMobileResModel().getCustomerName();
Log.i("CustomerName", customerName);
}
}
@Override
public void onFailure(Call<VerifyMobileResEnvelopeModel> call, Throwable t) {
Log.e("Failure", t.getMessage());
}
});
}
我遇到了一些解析问题。但得到回应。在它不进入响应 block 的方法中,执行失败 block 并抛出此异常。找出问题很麻烦。我试了很多。请任何人帮助我。提前致谢。
在我的代码中响应。但是它没有进入响应 block
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:verifyMobileResponse xmlns:ns1="http://webservice.router.ees.com/">
<return>Ramesh</return>
</ns1:verifyMobileResponse>
</soap:Body>
</soap:Envelope>
最佳答案
虽然为时已晚,但这可能会帮助像我这样可怜的人,我也遇到过类似的问题。尝试在 ResponseBody 的根标签中设置“strict = false”,如下所示
@Root(name = "soap:Envelope", strict = false)
@Namespace( prefix = "soap", reference = "http://schemas.xmlsoap.org/soap/envelope/")
public class VerifyMobileResEnvelopeModel { @Element(name = "soap:Body", required = false)
private VerifyMobileResBodyModel verifyMobileResBodyModel;
public VerifyMobileResBodyModel getVerifyMobileResBodyModel() {
return verifyMobileResBodyModel; }
public void setBody(VerifyMobileResBodyModel verifyMobileResBodyModel) {
this.verifyMobileResBodyModel = verifyMobileResBodyModel; } }
关于java - 解析 Soap Service 对 Retrofit 的使用我在响应中的类信封模型中面临这样的异常(即)不匹配的主体模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42060531/
我正在安装一个 react-app 并面临一些问题。我试图通过删除 /node-modules 来修复它并重新安装,但它仍然给我一些问题。我是一个 ubuntu 用户。请帮我解决一下这个。这是错误日志
首先,我是 C 的初学者,所以如果我的问题看起来很愚蠢,我很抱歉。 我正在学习如何在 C 中使用冒泡排序算法,我通过以下代码: #include int main() { int ctr,
我正在使用 HtmlUnitDriver 打开链接。这是我的代码: HtmlUnitDriver webDriver = new HtmlUnitDriver(); webDriver.get("so
我是 Camel 新手,我已经为分离器编写了代码。我编写了一个 context.xml,其中包含用于映射 POJO 的路由和 Bean,以及一个 FileSplitter.java 文件,其中包含以下
我不断收到错误:TestException.java:8: 错误: 未报告的异常 Throwable;必须被捕获或宣布被抛出 throw new ParentException().initCause
您能看一下this demo吗?让我知道为什么我无法定位所选 anchor 链接的下一个和上一个 section 的 id? 为了获得下一个,我尝试了所有 var target = $(this).
我正在为我们使用 asp.Net MVC 的应用程序尝试 JqGrid。我无法获得数据显示。我不确定是什么问题。 这是我的查看代码: @{ ViewBag.Title = "Sea
我想将网页显示为模式弹出窗口。 Response.Write("detailedresults=window.showModalDialog('NewFile.aspx','Data','left=(
当我尝试从不同域下载视频时,遇到 CORS 错误。我尝试了很多方法来解决它但无法解决。下面是我的js代码。 getVideoFile = function () { var xhr = new XML
我的 ADF Web 应用程序面临兼容性问题。尝试添加元标记 - ' '甚至尝试注入(inject)java脚本来抑制兼容性问题,但没有任何反射(reflect)。下面是java脚本- ` var
在这个项目中,我遇到了一些运行时错误,我厌倦了通过将错误粘贴到谷歌中来解决它并为此获得适当的结果。但是我无法解决这个问题, 和其他代码很好但是 list 文件显示了一些警告。代码是 `
我实现了一个具有三个选项卡的 TabLayout。当我滑动页面时一切正常,当我只使用标签点击来导航时它也有效。但是,当我滑动页面并单击任何先前选择的选项卡时,问题就出现了,只有选项卡指示器更改为新选项
我想要达到的目标:尝试将数据从我的应用程序字段发送到我在 WebAppServer 上的 Servlet。 我面临 ClassCastException 问题,我尝试实现我在相关讨论中在 StackO
JavaScript 代码: if (document.getElementsByClassName('chkaddress').checked) { $('#DivCommunication
我正在尝试使用 Hazelcast 来使用 SqlPredicate。代码片段: private void testHazelCast() { HazelcastInstance ha
当我从服务器访问图像时,收到 403 禁止错误。 如果我访问音频文件,那么我不会收到任何错误。但如果我正在访问图像文件,那么只有我面临这个问题。 请注意,音频文件的权限是0644,图像的权限也具有相同
我想像sql中的通配符搜索一样执行查询。所以我在nodejs和mongoose中使用正则表达式。当我使用硬代码时它可以工作,但是当我放入变量时它就不起作用。问题出在哪里。 硬代码代码 AlertMod
我正在尝试将 BottomNavigationView 与导航编辑器一起使用。我已经按照给定的方式实现了所有内容,但只显示主页,当我更改选项卡时,它不会更改 fragment 。 这是主要的 Acti
这个问题在这里已经有了答案: Enzyme: simple .to.have not working (1 个回答) 10 个月前关闭。 我有一个组件app.tsx import React, { u
我有多个选项卡(A、B、C),并且在加载“C”选项卡时,模型属性应数据绑定(bind)到选项卡“c”。我面临数据绑定(bind)问题。 三个选项卡(A、B、C)位于另一个 View View A 内。
我是一名优秀的程序员,十分优秀!