IBM MobileFirst:从Java调用适配器-InvokeProcess
我正在尝试从Java调用一个适配器,它可以正常工作IBM MobileFirst:从Java调用适配器-InvokeProcess,java,ibm-mobilefirst,mobilefirst-adapters,Java,Ibm Mobilefirst,Mobilefirst Adapters,我正在尝试从Java调用一个适配器,它可以正常工作 DataAccessService service = WorklightBundles.getInstance().getDataAccessService(); ProcedureQName procedure = new ProcedureQName(adapterName,adapterProc); service.invokeProcedure(procedure, String); 当必须将上述InvokeProcess中的字符串
DataAccessService service = WorklightBundles.getInstance().getDataAccessService();
ProcedureQName procedure = new ProcedureQName(adapterName,adapterProc);
service.invokeProcedure(procedure, String);
当必须将上述InvokeProcess中的字符串作为输入传递给被调用的适配器时,就会出现问题。当不需要参数时,它可以工作,但当我传递一个字符串(例如“Hello”)时,它就会中断。原因是,调用它时,Javascript适配器impl.js.不会解析字符串参数中传递的值,因此会抛出一个错误:
无法调用适配器名称/过程重命名,因为无效
运行时传递的字符串参数中的字符('H'第1行)
我曾尝试在com.ibm.json.java.*包中使用JSONArray/JSONObject,但错误仍然存在
因此尝试使用invokeProcedure的另一个重载(ProcedureQName、JSONArray、long nRequestID)
。大概
service.invokeProcedure(procedure, objArray,-1)
令人惊讶的是,目前这一切都很好。我想知道
请帮忙 您需要以字符串化数组的形式传递参数。例如
service.invokeProcedure(procedure, "[1,2,3,4]");
service.invokeProcedure(procedure, "[1,2,'three','four']");
service.invokeProcedure(procedure, "[1,2,true,false]");
如果只有一个参数,只需使用一个值创建一个数组
service.invokeProcedure(procedure, "['myStringParam']");
另一个选项是创建JSONArray对象并将其字符串化 您好,Anton,当我调用invokeProcedure方法时,它返回了一条错误消息[IO:第1行第14列的无效令牌],您对此有什么想法吗?