FWLSE0013E:无法调用过程JSONObject无法强制转换为JSONArray
FWLSE0013E: Cannot invoke procedure JSONObject cannot be cast to JSONArray
我在IBM Mobile的第一个应用程序login中有一个clinet端功能我从这个链接得到的。
login: function (username,password){
//promise
var logindef = $q.defer();
//tempuser
tempUser = {username:username, password:password};
userObj.username = username;
checkOnline().then(function (onl){
if (onl){ //online
console.log("attempting online login");
var parameters={
'username':'username',
'password':'password'
};
var options = {
parameters:parameters,
adapter:"realmAuth",
procedure:"submitLogin"
};
ch.submitAdapterAuthentication(options,{
onSuccess: function(){
console.log("-> submitAdapterAuthentication onSuccess!");
//update user info, as somehow isUserAuthenticated return false without it
WL.Client.updateUserInfo({onSuccess: function(){
//return promise
logindef.resolve(true);
}});
}
});
} else { //offline
console.log("attempting offline login");
logindef.resolve(offlineLogin());
}
});
return logindef.promise;
},
我想调用一个名为submitLogin
的适配器函数
function submitLogin(parameters){
if (!parameters)
return { 'isSuccessful': false, 'errorMsg' : 'parameters is ' + parameters};
var role="";
if (parameters.username=='admin')
role='admin';
else
role='customer';
var input = {
method : 'post',
returnedContentType : 'plain',
path : 'rest/default/V1/integration/' + role + '/token'+
'?username='+parameters.username+
'&password='+parameters.password,
headers: {"Accept":"application'/json"}
};
var response = WL.Server.invokeHttp(input);
var token=response.text;
token = token.replace("'"", ""); //delete the ""
token = token.replace("'"", "");*/
//token exp: l9ea4tv62mbfy7kmt0ekv6vdxmb23gjp
if (token!=null)
{
var userIdentity = {
userId: parameters.username,
displayName: parameters.username,
attributes: {
foo: "bar"
}
};
WL.Server.setActiveUser("AdapterAuthRealm", userIdentity);
return {
authRequired: true
};
}
return onAuthRequired(null, "Invalid login credentials");
}
当我试图在navigator中执行我的应用程序时,我得到了这个错误:
[错误]FWLSE0013E:无法调用过程realmAuth/submitLogin[project Eticket]com.ibm.json.java。无法将JSONObject强制转换为com.ibm.json.java.JSONArray
您的parameters
数组格式不正确。
您写道:
var parameters={
'username':'username',
'password':'password'
};
Javascript适配器需要一个未命名的有序的参数列表。不是JSON对象。
应该是:
var parameters = ['myUsername','myPassword']
您的适配器签名当然应该相应地更改,从function submitLogin(parameters)
更改为function submitLogin(username,password)
。
相关文章:
- 如何在JavaScript中将字符串转换为函数引用
- 如何在Javascript中将JSon对象转换为数组
- 使用JS将数组转换为json对象
- 如何使用json将对象列表从java转换为javascript
- 偶尔结结巴巴地说“;堆叠的”;translate()上的转换(v4.0.0-alpha40)
- 为什么在单独的函数中应用时转换会闪烁/断断续续(D3)
- 在Javascript中转换对象数组
- 将数字转换为一定数量的硬币
- 将纯文本URL转换为可单击链接
- 当图像转换为本地存储的DataURL时,EXIF被删除
- 如何使用js将SNAPSHOT内部版本号转换为3位数的整数
- 如何将TypeScript对象转换为普通对象
- FWLSE0013E:无法调用过程JSONObject无法强制转换为JSONArray
- 将JSONArray转换为javascript中的String以发送到java
- 在 Javascript 中将 JSONArray 转换为 JSON 对象
- 这个问题的原因是什么;无法转换org.json.JSONArray类型的参数“”;在react原生android中
- 如何在PHP中将JSONARRAY转换为JSON对象并另存为JSON文件
- JSONArray对象转换为jquery
- 如何解析JSONArray并在Javascript中进行转换
- 将MongoDB查询结果转换为JSONArray