2016-09-19 2 views
1

Adaptateur JSComment passer des paramètres à JS adaptateurs HTTP dans MobileFirst 8

function getCitiesByCountry(countryName) 

{ 

var request = 
    var request= 
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://www.webserviceX.NET"> 
    <soapenv:Header/> 
    <soapenv:Body> 
     <web:GetCitiesByCountry> 
     <!--Optional:--> 
     <web:CountryName>INDIA</web:CountryName> 
     </web:GetCitiesByCountry> 
    </soapenv:Body> 
</soapenv:Envelope>; 

var input = 

{ 
    method: 'post', 
    returnedContentType: 'xml', 
    path: '/globalweather.asmx', 
    body: { 
     content: request.toString(), 
     contentType: 'text/json; charset=utf-8' 
    } 
}; 
var result = MFP.Server.invokeHttp(input); 
return result.Envelope.Body; 
}; 

XML Adapter

<displayName>JavaScriptSOAP</displayName> 
<description>JavaScriptSOAP</description> 
<connectivity> 
    <connectionPolicy xsi:type="http:HTTPConnectionPolicyType"> 
     <protocol>http</protocol> 
     <domain>www.webservicex.net</domain> 
     <port>80</port> 
    </connectionPolicy> 
</connectivity> 

<procedure name="getCitiesByCountry" secured ="false"/> 

index.js

function submitRequest() 
{ 
    var resourceRequest = new    WLResourceRequest("adapters/JavaScriptSOAP/getCitiesByCountry", WLResourceRequest.POST); 
    resourceRequest.setQueryParameter("params", "['India']"); 
    resourceRequest.send().then(
    function(response) { 
     alert('response '+JSON.stringify(response.responseText)); 
    }, 
     function(response) { 

     alert("HTTP Failure "+JSON.stringify(response)); 
    } 
    ); 
    } 

Je dois passer des paramètres à http adaptateurs .Il contient le nom du pays.J'ai inclus le nom du pays dans le fichier js Index lui-même.Pendant la prévisualisation de l'application, je reçois le code d'erreur 415,

Et dans la console, je reçus comme

[AUDIT ] CWWKS1100A: Authentication did not succeed for user ID test. An invalid user ID or password was specified. 
[AUDIT ] CWWKS1100A: Authentication did not succeed for user ID test. An invalid user ID or password was specified. 
[AUDIT ] CWWKS1100A: Authentication did not succeed for user ID test. An invalid user ID or password was specified. 

Je:

Eclipse IDE Java EE pour les développeurs Web. Version: Mars.2 Release (4.5.2) id Build: 20160218-0600 Windows 7

Qu'est-ce que l'authentification je dois donner .Comment surmonter l'erreur ??

+0

Je ne comprends pas la question. Quel est le code client qui appelle cet adaptateur? –

+0

Iam incapable d'appeler l'adaptateur à partir du code client (c'est-à-dire index.js). Maintenant, j'ai inclus le code index.js également. – CodeWriter

+0

Quand exactement obtenez-vous cette erreur? Vous mentionnez - compiler. Compiler quoi - votre application? –

Répondre

0

Vous passez les arguments incorrectement. params est un tableau donc votre code devrait ressembler à

function submitRequest() { var resourceRequest = new WLResourceRequest("adapters/JavaScriptSOAP/getCitiesByCountry", WLResourceRequest.POST); resourceRequest.setQueryParameter("params", "['India']"); resourceRequest.send().then(function(response) { alert('response '+JSON.stringify(response.responseText)); }, function(response) { alert("HTTP Failure "+JSON.stringify(response)); }); } 
+0

@ Yoel..Je reçois la même erreur seulement. – CodeWriter

0

Essayez d'ajouter sécurisé = "false" à la déclaration de procédure dans le fichier XML:

<procedure name="getCitiesByCountry" secured="false"/> 
+0

@ shmulik.Toujours recevoir la même erreur.Quand je dois ajouter une authentification dans le fichier config.xml ?? – CodeWriter

1

A 415 est "type de média non pris en charge". Cela signifie que le serveur a décidé que la requête que vous avez envoyée ne contient pas le type de données que le serveur pense devoir utiliser. La raison pour laquelle vous obtenez ceci est que vous envoyez une requête POST sans corps et avec des paramètres de requête. Ce que vous pouvez faire pour résoudre ceci est de changer la requête POST en une requête GET. Il suffit de changer

WLResourceRequest("adapters/JavaScriptSOAP/getCitiesByCountry", WLResourceRequest.POST); 

à

WLResourceRequest("adapters/JavaScriptSOAP/getCitiesByCountry", WLResourceRequest.GET);