Worklight Java 适配器调用另一个适配器获取 I/O 问题

Worklight Java adapter invoke another adapter get I/O issue

我在尝试从 Java 适配器调用适配器 (HTTP/MYSQL) 时遇到问题。

当我使用 Postmen 测试它时(在 header 上添加了授权) 总是遇到 IO 问题:

[I O: Invalid token on line 1, column 14].

首先,我猜应该是OAuth的问题,我在class处添加了@OAuthSecurity(enabled=false),但是没有用。

能不能帮我看看是哪里出了问题

代码片段:

DataAccessService service = WorklightBundles.getInstance()
            .getDataAccessService();
ProcedureQName name = new ProcedureQName("mysqlAdapter",
            "getMysqlAdapters");
String para = ""; // String para = "['a','b','c']";
InvocationResult mysql= service.invokeProcedure(name, para);
JSONObject jsMysql = mysql.toJSON();
//String rst = jsMysql.get("key").toString();

PS 当我在 Postman 上测试时,以下代码片段有效:

HttpUriRequest request = api.getAdaptersAPI()
            .createJavascriptAdapterRequest("mysqlAdapter", "getMysqlAdapters");

try {
    HttpResponse response = api.getAdaptersAPI().executeAdapterRequest(request);
    JSONObject jsonObj =api.getAdaptersAPI().getResponseAsJSON(response);
    return jsonObj.toString();
}
catch (MFPServerOAuthException e) {
    e.printStackTrace();
}
catch (IOException e) {
    e.printStackTrace();
}
return "error";

我很困惑...

  1. 您使用了标签 "worklight",但是 Product Worklight 4.x-6.2 没有 Java 适配器支持。有 Java 脚本适配器支持和 Java 脚本适配器调用服务器上的 Java 代码的能力。还可以从 Java 代码调用 JavaScript 适配器 - 但不要混淆为 Java 适配器。

  2. Java 适配器只存在于 MobileFirst Platform Foundation 7.0(以前称为 "Worklight", 标签是 "mobilefirst")。我提到这一点是因为您提到了 OAuth 支持,它是在 MobileFirst Platform Foundation 7.0 中与 Java 适配器一起引入的。但这与您的任何代码片段都无关。 Java 适配器看起来不像那样。

所以,

另请注意,此时从 JavaScript 适配器调用 Java 适配器并不容易(与您的请求相反的方式,如果要正确理解的话) .