2015-05-08 49 views
1

當我試圖調用Http Adapter時,控制將失敗。我的適配器運行正常,我也正在獲取數據。Http適配器調用失敗?

這裏是我的html代碼

<html> 
<head> 
<meta charset="UTF-8"> 
<title>IIB_WL_App</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/IIB_WL_App.css"> 
<script>window.$ = window.jQuery = WLJQ;</script> 
</head> 
<body id="content" style="display: none;"> 
<form name="f1"> 
Enter Employee ID :<input type="text" id="EmpId"> 
<br> 
<input type="submit" value="GetDetails" onclick="GetDetails()"> 
</form> 
<!--application UI goes here--> 
<script src="js/initOptions.js"></script> 
<script src="js/IIB_WL_App.js"></script> 
<script src="js/messages.js"></script> 
</body> 
</html> 

這裏是我的.js代碼爲獲得細節

function GetDetails(){ 
//alert("Function Called"); 
var id=f1.EmpId.value; 
//var id=document.getElementById("EmpId").value(); 
alert(id); 
var invocationData = { 
    adapter : 'IIB_WL_Adapter', 
    procedure : 'getData', 
    parameters : [id] 
}; 
var options={ 
     onSuccess : getDataSuccess, 
     onFailure : getDataFailure, 
}; 
WL.Client.invokeProcedure(invocationData,options); 

}; 
function getDataSuccess(result) { 
//WL.Logger.debug("Retrieve success" + JSON.stringify(result)); 

alert("Success"); 
var httpStatusCode = result.status; 
alert(httpStatusCode); 

} 
function getDataFailure(result) { 
//WL.Logger.debug("Retrieve success" + JSON.stringify(result)); 
alert("Failure"); 
    var httpStatusCode = result.status; 
    alert(httpStatusCode);  
} 

而且我要在列表視圖中顯示的數據

這裏是我的adapter.xml

<?xml version="1.0" encoding="UTF-8"?> 
<!-- Licensed Materials - Property of IBM 5725-G92 (C) Copyright IBM Corp. 
2011, 2013. All Rights Reserved. US Government Users Restricted Rights - 
Use, duplication or disclosure restricted by GSA ADP Schedule Contract with 
IBM Corp. --> 
<wl:adapter name="IIB_WL_Adapter" 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>IIB_WL_Adapter</displayName> 
<description>IIB_WL_Adapter</description> 
<connectivity> 
    <connectionPolicy xsi:type="http:HTTPConnectionPolicyType"> 
     <protocol>http</protocol> 
     <domain>172.17.14.228</domain> 
     <port>7080</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="getData" /> 

這裏是我的adpater-impl.js

function getData(interest) { 
//path = getPath(interest); 

var input = { 
    method : 'get', 
    path : '/DBRetrive', 
    returnedContentType : 'xml', 
    parameters : {'id' : interest} 
}; 


return WL.Server.invokeHttp(input); 

}

+0

什麼是故障消息?將其添加到問題中。 –

+0

控件將獲取DataFailure函數。我保持警告消息「失敗」。它不會獲取DataSuccess函數 –

+0

而不是打印「失敗」,打印實際結果:result.errorMsg。什麼是錯誤? –

回答

2

我得到了這個問題的解決方案。問題出在我的Html頁面上,而不是使用這個。

<input type="submit" value="GetDetails" onclick="GetDetails()"> 

使用下面的標籤與按鈕類型,然後它的工作。

<input type="button" value="GetDetails" onclick="return GetDetails()"> 

和顯示數據我加入的.js一些代碼文件

function GetDetails(){ 
var id=f1.EmpId.value; 
alert(id); 
var invocationData = { 
    adapter : 'IIB_WL_Adapter', 
    procedure : 'getData', 
    parameters : [id] 
}; 
var options={ 
     onSuccess : getDataSuccess, 
     onFailure : getDataFailure, 
}; 
WL.Client.invokeProcedure(invocationData,options); 

}; 
function getDataSuccess(result) { 
    display(result.invocationResult.Employee.Data); 
} 
function getDataFailure(result) { 
    alert(JSON.stringify(result)); 
    alert(result.errorMsg); 
    var httpStatusCode = result.status; 
} 
function display(items){ 

var ul=$("#itemList"); 
ul=$("#itemList").html("&nbsp"); 
var li=$('<li/>').html("Id:"+items.ID); 
li.append($('<li/>').html("Name:"+items.NAME)); 
li.append($('<li/>').html("Age:"+items.AGE)); 
ul.append(li); 
} 
0

我碰到你的代碼。
代碼本身看起來很健康。

雖然這是失敗,所以我不明白你是什麼意思「控制將失敗函數,當我試圖調用Http Adapter.Here我的適配器運行良好,我也獲得數據「。

你說你在瀏覽器中測試過它,並且因「目前服務不可用」而失敗。在瀏覽器中我也遇到了同樣的情況,並且在從Studio調用適配器時也是如此 - 同樣的錯誤消息。

那麼,其中究竟是爲你工作?

在我看來,問題出在你的適配器配置,你指着不存在或者是錯誤的位置的位置指:http://172.17.14.228:7080/DBretrieve

+0

這裏的位置http://172.17.14.228:7080/DBretrieve運行良好。而這個位置不適合你,因爲它在本地網絡。雖然我正在運行我的適配器它工作正常,我以JSON格式獲取數據。現在我試圖從我的移動UI調用該適配器,即包含一個文本字段和一個按鈕的Html頁面,當點擊按鈕時,此適配器需要調用,但我無法調用此適配器。 –

相關問題