我正在尝试从 Java 调用一个可以正常工作的适配器
DataAccessService service = WorklightBundles.getInstance().getDataAccessService();
ProcedureQName procedure = new ProcedureQName(adapterName,adapterProc);
service.invokeProcedure(procedure, String);
当上述 invokeProcedure 中的字符串必须作为输入传递给被调用的适配器时,问题就出现了。当不需要参数时它可以工作,但是当我传递一个字符串(例如“Hello”)时它会中断。原因是,当它被调用时,在 String 参数中传递的值不会被Javascript adapter-impl.js 解析。因此抛出一个错误说
由于运行时传递的字符串参数中的无效字符(“H”第 1 行),无法调用适配器名称/过程名称
我尝试使用com.ibm.json.java.*包中的JSONArray/JSONObject,但错误仍然存在。
所以尝试使用invokeProcedure(ProcedureQName,JSONArray,long nRequestID)
. 就像是,
service.invokeProcedure(procedure, objArray,-1)
令人惊讶的是,这目前工作正常。我想了解是否,
- 是这种情况的正确方法,并且
- 将来使用invokeProcedure的3个参数重载会有什么问题吗?
请帮忙。