biskoka
Messages postés11Date d'inscriptionvendredi 28 octobre 2011StatutMembreDernière intervention 2 juillet 2013
-
5 déc. 2012 à 20:53
cs_AlexN
Messages postés694Date d'inscriptionlundi 5 décembre 2005StatutMembreDernière intervention 8 janvier 2014
-
6 déc. 2012 à 12:47
Bonjour j'ai développé un service web que je voudrais accédé à partir d'une page html.
Quand je le test sous IE tout marche. mais lorsque j'essai de le tester sous chrome ou Mozilla il m'affiche l'erreur suivante: Avertissement: " Cannot handle HTTP method: OPTIONS ". Alors je voudrais savoir si quelqu'un pourra m'aidé. Merci
Le code HTML ainsi que JAVA sont ci dessous.
package call.web.service;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
import javax.xml.ws.Endpoint;
@WebService
public class Hello {
@WebMethod
public String getHello(@WebParam(name="name") String name)
{
System.out.println("user="+name);
return "Hello " +name;
}
@WebMethod
public double rectangle(@WebParam(name="length") double length,@WebParam(name="breadth") double breadth)
{
return length * breadth;
}
public static void main(String[] args) {
Hello hello = new Hello();
String url = "http://localhost:9999/services/HelloService"; // end point of webservice.
System.out.println(url+"?wsdl");
Endpoint.publish(url, hello); // publishing the webservice
}
}
<html>
<head>
<title>test webservice</title>
<script type="text/javascript" src="scripts/commonfunctions.js"></script>
<script type="text/javascript">
function call()
{
var name = nameid.value;
var xmlhttp = null;
var req = "<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://service.web.call/"><soapenv:Body><web:getHello><name>" + name+ "</name></web:getHello></soapenv:Body></soapenv:Envelope>";
if (window.XMLHttpRequest){ // code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else { // code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP" || "Msxml2.XMLHTTP" || "Microsoft.XMLDOM");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
var response = xmlhttp.responseXML;
var resu = response.selectSingleNode(".//return").text;
sortieid.value = resu;
alert(resu);
evaluate(".//return",response,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue;
}
}
var soapaction = "http://service.web.call/getHello";
xmlhttp.open("POST","http://localhost:9999/services/HelloService?wsdl",true);
xmlhttp.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
xmlhttp.setRequestHeader("SOAPAction", soapaction);
xmlhttp.send(req);
}
</script>
</head>
Name:
Sortie:
salutation
</html>
cs_AlexN
Messages postés694Date d'inscriptionlundi 5 décembre 2005StatutMembreDernière intervention 8 janvier 201419 6 déc. 2012 à 12:47
Cela vient du fait que Firefox envoie une requête OPTIONS au serveur, avant d'envoyer ta requête, pour être sûr que le serveur assure le service demandé. Hors ton serveur ne répond pas à la requête OPTIONS, d'où le message d'erreur.