【问题标题】:Invoking SQL Adapter from Java从 Java 调用 SQL 适配器
【发布时间】:2016-03-21 08:18:41
【问题描述】:

Worklight 6.2 版

适配器已部署,服务器已启动。

我正在使用下面的代码来调用 SQL 过程:

 DataAccessService service = WorklightBundles.getInstance().getDataAccessService();
ProcedureQName procedureQname = new ProcedureQName("EAttendanceSQLAdapter", "checkDomain");
String paramArray = "['"+userName+"']";
System.out.println("paramArray : "+ paramArray);
logger.info(">>>>>>>>>>>after procedureQname>>>>>>>>>>>>>>>>>>>>>");
InvocationResult result = service.invokeProcedure(procedureQname,paramArray);
com.ibm.json.java.JSONObject resultJsonObject = result.toJSON();

它把我扔了

java.lang.NullPointerException 在这一行“DataAccessService service = WorklightBundles.getInstance().getDataAccessService();”

请多多指教。但是同一组代码在不同的项目中对我有用。

谢谢

【问题讨论】:

  • 您可能使用不同的 java 版本?或者 Eclipse 没有运行/使用相同的 JRE?
  • 嗨,Idan,我们在两个项目中都使用 Java 版本:1.7。
  • 提供完整的错误日志。

标签: java ibm-mobilefirst worklight-adapters


【解决方案1】:

IMO 出了点问题,下面这行...
String paramArray = "['"+userName+"']";

这是一个工作示例:

import com.ibm.json.java.JSONObject;
import com.worklight.server.bundle.api.WorklightBundles;
import com.worklight.server.integration.api.DataAccessService;
import com.worklight.server.integration.api.InvocationResult;
import com.worklight.server.integration.api.ProcedureQName;

public void callProcedure() {
    DataAccessService service = WorklightBundles.getInstance().getDataAccessService();
    String paramArray = "['param1', 'param2', 'param3']";
    ProcedureQName procedureQName = new ProcedureQName("adapterName",
"procedureName");
    InvocationResult result = service.invokeProcedure(procedureQName,paramArray);
    JSONObject jsonObject = result.toJSON();
    String value = (String)jsonObject.get("key");
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多