gpt4 book ai didi

java - IBM 移动第一 : Invoking adapter from Java- InvokeProcedure

转载 作者:行者123 更新时间:2023-12-02 05:05:53 25 4
gpt4 key购买 nike

我正在尝试从 Java 调用一个适配器,该适配器可以正常工作

DataAccessService service = WorklightBundles.getInstance().getDataAccessService();
ProcedureQName procedure = new ProcedureQName(adapterName,adapterProc);
service.invokeProcedure(procedure, String);

当上述 invokeProcedure 中的字符串必须作为输入传递给调用的适配器时,就会出现问题。当不需要参数时它可以工作,但是当我传递一个字符串(例如“Hello”)时它会中断。原因是,当调用它时,在 String 参数中传递的值不会被 Javascriptadapter-impl.js 解析,因此会抛出一个错误:

adapter name/procedurename cannot be invoked because of invalid characters('H' line 1) in the String argument passed in runtime

我尝试使用 com.ibm.json.java.* 包中的 JSONArray/JSONObject,但错误仍然存​​在。

因此尝试使用 invokeProcedure(ProcedureQName,JSONArray,long nRequestID) 的其他重载。比如,

service.invokeProcedure(procedure, objArray,-1)

令人惊讶的是,这目前运行良好。我想了解是否,

  1. 是这种情况下的正确方法,并且
  2. 将来使用invokeProcedure的3个参数重载会出现任何问题吗?

请帮忙。

最佳答案

您需要将参数作为字符串化数组传递。例如。

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 对象并将其字符串化。

关于java - IBM 移动第一 : Invoking adapter from Java- InvokeProcedure,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27799783/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com