如何在 MobileFirst 7.0 中调试 SOAP 适配器
How to debug a SOAP adapter in MobileFirst 7.0
在 mobilefirst 7.0 中,我从 wsdl URL 开始成功创建了一个 soapadapter。
Web 服务器公开了一些操作,有些操作正常,但只有一个。我在网络服务器端进行调试,发现一个复杂类型缺少一个对象。使用移动浏览器模拟器调试我可以看到 post 对 mobilefirst 服务器的请求包含我由 javascript 创建的 json 对象。 json 对象包含一个对象数组和第二个对象。第一个对象,数组,成功到达 web 服务,但不是第二个。
有没有办法调试适配器的功能?
这是服务的原型:
{
"iscriviUtente": {
"iscrizione": {
"intestatari": {
"item": {
"cciaa": "someValue",
"censito": "someValue",
"codiceFiscale": "someValue",
"formaGiuridica": "someValue",
"partitaIva": "someValue",
"ragioneSociale": "someValue",
"sede": "someValue"
}
},
"utente": {
"cap": "someValue",
"codiceFiscale": "someValue",
"cognome": "someValue",
"dataNascita": "someValue",
"dataScadenza": "someValue",
"email": "someValue",
"indirizzo": "someValue",
"localita": "someValue",
"luogoNascita": "someValue",
"nome": "someValue"
}
}
}
}
这是我用来调用服务的javascript方法:
function doIscriviUtente(utente, intestatari, options) {
var children = [];
for(i=0; i<intestatari.length; i++) {
var intestatario = intestatari[i];
var child = {
"cciaa": intestatario.cciaa,
"censito": intestatario.censito,
"codiceFiscale": intestatario.codiceFiscale,
"formaGiuridica": intestatario.formaGiuridica,
"partitaIva": intestatario.partitaIva,
"ragioneSociale": intestatario.ragioneSociale,
"sede": intestatario.sede
};
children[i] = child;
}
var param = [{
"iscriviUtente": {
"iscrizione": {
"intestatari": children,
"utente": {
"cap": utente.cap,
"codiceFiscale": utente.codiceFiscale,
"cognome": utente.cognome,
"dataNascita": utente.dataNascita,
"dataScadenza": utente.dataScadenza,
"email": utente.email,
"indirizzo": utente.indirizzo,
"localita": utente.localita,
"luogoNascita": utente.luogoNascita,
"nome": utente.nome
}
}
}
}];
var invocationData = {
adapter : soapAdapter,
procedure : soapProcedure+"iscriviUtente",
parameters : param
};
try {
WL.Client.invokeProcedure(invocationData, options);
} catch(e) {
if (options.onFailure)
options.onFailure(WL.App.getErrorMessage(e));
}
}
Web 服务收到参数 "iscrizione",其中包含 "intestatari" 的数组和一个 "utente" 对象,该对象为空,因为 soap 适配器无法编写 soap 消息。
您的 javascript 方法中缺少 "item"。下面的代码应该可以正常工作。
var 参数 = [{
.......
"intestatari": { "item": children},
.......
}];
在 mobilefirst 7.0 中,我从 wsdl URL 开始成功创建了一个 soapadapter。 Web 服务器公开了一些操作,有些操作正常,但只有一个。我在网络服务器端进行调试,发现一个复杂类型缺少一个对象。使用移动浏览器模拟器调试我可以看到 post 对 mobilefirst 服务器的请求包含我由 javascript 创建的 json 对象。 json 对象包含一个对象数组和第二个对象。第一个对象,数组,成功到达 web 服务,但不是第二个。 有没有办法调试适配器的功能?
这是服务的原型:
{
"iscriviUtente": {
"iscrizione": {
"intestatari": {
"item": {
"cciaa": "someValue",
"censito": "someValue",
"codiceFiscale": "someValue",
"formaGiuridica": "someValue",
"partitaIva": "someValue",
"ragioneSociale": "someValue",
"sede": "someValue"
}
},
"utente": {
"cap": "someValue",
"codiceFiscale": "someValue",
"cognome": "someValue",
"dataNascita": "someValue",
"dataScadenza": "someValue",
"email": "someValue",
"indirizzo": "someValue",
"localita": "someValue",
"luogoNascita": "someValue",
"nome": "someValue"
}
}
}
}
这是我用来调用服务的javascript方法:
function doIscriviUtente(utente, intestatari, options) {
var children = [];
for(i=0; i<intestatari.length; i++) {
var intestatario = intestatari[i];
var child = {
"cciaa": intestatario.cciaa,
"censito": intestatario.censito,
"codiceFiscale": intestatario.codiceFiscale,
"formaGiuridica": intestatario.formaGiuridica,
"partitaIva": intestatario.partitaIva,
"ragioneSociale": intestatario.ragioneSociale,
"sede": intestatario.sede
};
children[i] = child;
}
var param = [{
"iscriviUtente": {
"iscrizione": {
"intestatari": children,
"utente": {
"cap": utente.cap,
"codiceFiscale": utente.codiceFiscale,
"cognome": utente.cognome,
"dataNascita": utente.dataNascita,
"dataScadenza": utente.dataScadenza,
"email": utente.email,
"indirizzo": utente.indirizzo,
"localita": utente.localita,
"luogoNascita": utente.luogoNascita,
"nome": utente.nome
}
}
}
}];
var invocationData = {
adapter : soapAdapter,
procedure : soapProcedure+"iscriviUtente",
parameters : param
};
try {
WL.Client.invokeProcedure(invocationData, options);
} catch(e) {
if (options.onFailure)
options.onFailure(WL.App.getErrorMessage(e));
}
}
Web 服务收到参数 "iscrizione",其中包含 "intestatari" 的数组和一个 "utente" 对象,该对象为空,因为 soap 适配器无法编写 soap 消息。
您的 javascript 方法中缺少 "item"。下面的代码应该可以正常工作。
var 参数 = [{
.......
"intestatari": { "item": children},
.......
}];