基于Java的适配器-找不到返回值
我正在worklight中使用基于java的适配器。我有一个返回字符串值的方法。我能够调用该函数,结果将进入适配器中的成功处理程序,但我无法找到有关返回值的任何信息。我在响应JSON中的任何位置都看不到返回的字符串。有人能帮我吗 以下是我的回答: {“状态”:200,“调用上下文”:null,“调用结果”:{“响应ID”:“16”,“isSuccessful”:true} 我已经看到了下面的例子 ,当我对代码示例执行“调用适配器过程”时,我得到了这个结果 {“isSuccessful”:true,“result”:-9} 其中,result是适配器中java方法的返回值 但当我为我的应用程序做同样的事情时,我得到了以下结果 {“isSuccessful”:true} Java-adapter.impl代码 函数getXML(){返回{结果: com.worklight.javaCode.FileIOPlugin.getXML()};} Java类方法 公共类FileIOPlugin{ 公共静态字符串getXML(){ 返回“成功”; } }基于Java的适配器-找不到返回值,java,ibm-mobilefirst,Java,Ibm Mobilefirst,我正在worklight中使用基于java的适配器。我有一个返回字符串值的方法。我能够调用该函数,结果将进入适配器中的成功处理程序,但我无法找到有关返回值的任何信息。我在响应JSON中的任何位置都看不到返回的字符串。有人能帮我吗 以下是我的回答: {“状态”:200,“调用上下文”:null,“调用结果”:{“响应ID”:“16”,“isSuccessful”:true} 我已经看到了下面的例子 ,当我对代码示例执行“调用适配器过程”时,我得到了这个结果 {“isSuccessful”:true
返回需要是一个对象。返回需要是一个对象。我已尝试在最近发布的Worklight 6.0中重现您的问题,在复制和粘贴代码后,我发现一切正常 我所做的唯一更改是在用于调用适配器方法的invocationData对象上添加空参数 这是我的确切代码:
FileIOPlugin.java(在server/conf下,在com.worklight.javacode包中) JavaAdapter.xml(HTTP适配器定义,在适配器文件夹下) 我将我的应用程序命名为javaAdapterApp,因此文件名如下: javaAdapterApp.js(在apps/javaAdapterApp/common/js下) 最后 javaAdapterApp.html(在apps/javaAdapterApp/common下)
javaAdapterApp
window.$=window.jQuery=WLJQ;
获取XML
我在测试服务器中运行了它,成功处理程序中的JSON.stringify(data)的结果如下所示:
{“status”:200,“invocationContext”:null,“invocationResult”:{“responseID”:“9”,“result”:“SUCCESS”,“issusccessful”:true}
在调用结果.result中有您要查找的“SUCCESS”字符串
希望这有帮助
Orlando我尝试在最近发布的Worklight 6.0中重现您的问题,在复制和粘贴代码后,我发现一切正常 我所做的唯一更改是在用于调用适配器方法的invocationData对象上添加空参数 这是我的确切代码:
FileIOPlugin.java(在server/conf下,在com.worklight.javacode包中) JavaAdapter.xml(HTTP适配器定义,在适配器文件夹下) 我将我的应用程序命名为javaAdapterApp,因此文件名如下: javaAdapterApp.js(在apps/javaAdapterApp/common/js下) 最后 javaAdapterApp.html(在apps/javaAdapterApp/common下)
javaAdapterApp
window.$=window.jQuery=WLJQ;
获取XML
我在测试服务器中运行了它,成功处理程序中的JSON.stringify(data)的结果如下所示:
{“status”:200,“invocationContext”:null,“invocationResult”:{“responseID”:“9”,“result”:“SUCCESS”,“issusccessful”:true}
在调用结果.result中有您要查找的“SUCCESS”字符串
希望这有帮助
奥兰多你好。。我也尝试过发送对象。但是我仍然看不到在哪里可以找到返回的对象。嗨。。我也尝试过发送对象。但是我仍然看不到在哪里可以找到返回的对象。你能发布适配器代码吗?嗯,是的,看起来不错。调用适配器的客户端代码如何?这可能与此无关,或者可能是在复制代码时发生的,但是成功处理程序有一个输入错误:“function sucessHandler”,因为它缺少一个“c”。到目前为止,我无法重现你的错误…@JeremyNortey:这是我粘贴到这里时的打字错误。。它实际上只是一个成功的处理器。。还有什么我需要添加/更改的吗?你能发布适配器代码吗?嗯,是的,看起来不错。调用适配器的客户端代码如何?这可能与此无关,或者可能是在复制代码时发生的,但是成功处理程序有一个输入错误:“function sucessHandler”,因为它缺少一个“c”。到目前为止,我无法重现你的错误…@JeremyNortey:这是我粘贴到这里时的打字错误。。它实际上只是一个成功的处理器。。还有什么我需要添加/更改的吗?
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");}
package com.worklight.javacode;
public class FileIOPlugin {
public static String getXML() {
return "SUCCESS";
}
}
<?xml version="1.0" encoding="UTF-8"?>
<wl:adapter name="JavaAdapter"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:wl="http://www.worklight.com/integration"
xmlns:http="http://www.worklight.com/integration/http">
<displayName>JavaAdapter</displayName>
<description>JavaAdapter</description>
<connectivity>
<connectionPolicy xsi:type="http:HTTPConnectionPolicyType">
<protocol>http</protocol>
<domain>rss.cnn.com</domain>
<port>80</port>
<!-- Following properties used by adapter's key manager for choosing specific certificate from key store
<sslCertificateAlias></sslCertificateAlias>
<sslCertificatePassword></sslCertificatePassword>
-->
</connectionPolicy>
<loadConstraints maxConcurrentConnectionsPerNode="2" />
</connectivity>
<procedure name="getXML"/>
</wl:adapter>
function getXML() {
return {
result : com.worklight.javacode.FileIOPlugin.getXML()
};
}
function wlCommonInit(){
}
function getXML() {
var invocationData = {
adapter : 'JavaAdapter',
procedure : 'getXML',
parameters : []
};
WL.Client.invokeProcedure(invocationData, {
onSuccess : successHandler,
onFailure : failureHandler
});
}
function successHandler(data) {
alert(JSON.stringify(data));
}
function failureHandler(data) {
alert("Error to get data");
}
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<title>javaAdapterApp</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0">
<link rel="shortcut icon" href="images/favicon.png">
<link rel="apple-touch-icon" href="images/apple-touch-icon.png">
<link rel="stylesheet" href="css/javaAdapterApp.css">
<script>window.$ = window.jQuery = WLJQ;</script>
</head>
<body id="content" style="display: none;">
<button onClick="getXML()">GET XML</button>
<script src="js/initOptions.js"></script>
<script src="js/javaAdapterApp.js"></script>
<script src="js/messages.js"></script>
</body>
</html>