我試圖在最近發佈的Worklight 6.0中重現您的問題,並且我看到所有工作正常,在您的代碼粘貼&之後複製。
我做的唯一更改是在用於調用適配器方法的invocationData對象上添加空參數。
這是我的確切的代碼:
FileIOPlugin.java(下服務器/ CONF,在封裝com.worklight.javacode)
package com.worklight.javacode;
public class FileIOPlugin {
public static String getXML() {
return "SUCCESS";
}
}
JavaAdapter的。XML(HTTP接口定義,適配器文件夾下)
<?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>
JavaAdapter的-impl.js(旁邊JavaAdapter.xml)
function getXML() {
return {
result : com.worklight.javacode.FileIOPlugin.getXML()
};
}
我打電話給我的應用程序javaAdapterApp,因此這些文件名稱:
javaAdapterApp.js(under apps/javaAda pterApp /普通/ JS)
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");
}
最後 javaAdapterApp.html(在應用程序/ javaAdapterApp /通用)
<!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>
我跑了它在測試服務器和JSON的結果。字符串化(數據)在成功處理程序是這樣的:
{ 「地位」:200, 「invocationContext」:空, 「invocationResult」:{ 「responseID」: 「9」, 「結果」: 「成功」 「isSuccessful」:真正}}
有您正在尋找在invocationResult.result「成功」的字符串。
希望這有助於
奧蘭多
你能後的適配器代碼? – jnortey 2013-04-08 14:02:30
嗯,看起來不錯。如何調用適配器的客戶端代碼? – jnortey 2013-04-08 14:20:18
這可能是無關緊要的,也可能是您複製代碼時發生的,但成功處理程序有一個錯字:「function sucessHandler」,因爲它缺少'c'。我到目前爲止一直無法重現您的錯誤... – jnortey 2013-04-08 14:39:49