【发布时间】:2013-04-08 11:18:54
【问题描述】:
我在 worklight 中使用基于 java 的适配器。我有一个返回字符串值的方法。我可以调用该函数,结果将转到适配器中的成功处理程序,但我无法找到有关返回值的任何信息。我在响应 JSON 中的任何地方都看不到返回的字符串。谁能帮我这个?
这是我的响应 JSON:
{"status":200,"invocationContext":null,"invocationResult":{"responseID":"16","isSuccessful":true}}
我看过下面的例子 http://public.dhe.ibm.com/ibmdl/export/pub/software/mobile-solutions/worklight/docs/Module_05_5_-_Using_Java_in_Adapters.pdf,当我对代码示例执行“调用适配器过程”时,我得到了这个结果。
{ "isSuccessful": true, "result": -9 } 其中 result 是适配器中 java 方法的返回值。
但是当我为我的应用程序做同样的事情时,我得到以下结果
{ "isSuccessful": true }
Java-adapter.impl 代码
function getXML() { return {结果: com.worklight.javaCode.FileIOPlugin.getXML() }; }
Java 类方法
公共类 FileIOPlugin{ 公共静态字符串 getXML() { 返回“成功”; } }
function getXML()
{
var invocationData ={
adapter: 'JavaAdapter',
procedure: 'getXML'
};
WL.Client.invokeProcedure(invocationData,{
onSuccess: successHandler,
onFailure: failureHandler
)};
function successHandler(data) {alert(JSON.stringify(data));}
function failureHandler(data) {alert("Error to get data");}
【问题讨论】:
-
能贴出适配器代码吗?
-
嗯,是的,看起来不错。调用适配器的客户端代码呢?
-
这可能无关紧要,或者可能是在您复制代码时发生的,但成功处理程序有一个错字:“function sucessHandler”,因为它缺少一个“c”。到目前为止,我无法重现您的错误...
-
@JeremyNortey:这是我粘贴到这里时的拼写错误。它实际上只有successHandler 。还有什么我需要添加/更改的吗?
标签: java ibm-mobilefirst