Venkatesh Voona
Venkatesh Voona

Reputation: 423

Http Adapter Invocation failure?

The Control is going to failure function when I'm trying to invoke Http Adapter.Here My adapter is running fine and I'm getting data also.

Here is My html code

<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>

Here is My .js code For getting details

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);    
}

And I want to display that data in a list view

Here is MY 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" />

Here is My 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);

}

Upvotes: 1

Views: 413

Answers (2)

Venkatesh Voona
Venkatesh Voona

Reputation: 423

I got the solution for this problem. The problem is in my Html page i.e instead of using this.

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

use the following tag with button type then its working.

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

And for displaying the data I added some code in .js file

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);
}

Upvotes: 2

Idan Adar
Idan Adar

Reputation: 44516

I've ran your code.
The code itself appears to be sound.

It's failing though, so I don't understand what do you mean by "The Control is going to failure function when I'm trying to invoke Http Adapter.Here My adapter is running fine and I'm getting data also."

You say you tested it in the browser and it is failing with "The Service Currently not available". It is also failing the same for me in the browser, and also the same when invoking the adapter from the Studio - same error message.

So again, where exactly is it working for you?

As I see it, the problem is in your adapter configuration, the location you're pointing to does not exist or is the wrong location to point to: http://172.17.14.228:7080/DBretrieve

Upvotes: 0

Related Questions