Hallo zusammen,
ich versuche mich gerade in Webservices. Mein Plan wäre, einen Webservice per Javascript anzusprechen.
Hierfür habe ich einen rudimentären Webservice in Eclipse erstellt. Ich nutze openJDK11 und einen Tomcat9 Webserver (Axis 1).
Der Webservice scheint zu funktionieren, da ich ihn mit der SoapUi ansprechen kann. Request:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:test="http://test">
<soapenv:Header/>
<soapenv:Body>
<test:adder>
<test:a>5</test:a>
<test:b>1</test:b>
</test:adder>
</soapenv:Body>
</soapenv:Envelope>
liefert
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<adderResponse xmlns="http://test">
<adderReturn>6</adderReturn>
</adderResponse>
</soapenv:Body>
</soapenv:Envelope>
Leider bekomme ich es aber nicht hin, dass ein Javascript einen Respons liefert. Ich hätte es wie folgt versucht:
<html>
<head>
<title>SOAP JavaScript Client Test</title>
<script type="text/javascript">
function soap() {
var xmlhttp = new XMLHttpRequest();
xmlhttp.open('POST', 'http://localhost:8080/WebServiceTest/services/Adder', true);
xmlhttp.setRequestHeader('Content-Type', 'text/xml');
var sr =
'<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:test="http://test">' +
'<soapenv:Header/>' +
'<soapenv:Body>' +
'<test:adder>' +
'<test:a>5</test:a>' +
'<test:b>1</test:b>' +
'</test:adder>' +
'</soapenv:Body>' +
'</soapenv:Envelope>';
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4) {
if (xmlhttp.status == 200) {
alert(xmlhttp.responseText);
// alert('done. use firebug/console to see network response');
}
}
}
// Send the POST request
xmlhttp.send(sr);
// send request
var res = xmlhttp.responseText;
alert(res);
}
</script>
</head>
<body>
<form name="Demo" action="" method="post">
<div>
<input type="button" value="SoaP" onclick="soap();" />
</div>
</form>
</body>
</html>
Ich bekomme einfach kein Ergebnis.
Ich habe mir schon die Finger wund gegoogelt, leider wirds nicht besser.
Ich wäre über jede Hilfe sehr dankbar.
ich versuche mich gerade in Webservices. Mein Plan wäre, einen Webservice per Javascript anzusprechen.
Hierfür habe ich einen rudimentären Webservice in Eclipse erstellt. Ich nutze openJDK11 und einen Tomcat9 Webserver (Axis 1).
Der Webservice scheint zu funktionieren, da ich ihn mit der SoapUi ansprechen kann. Request:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:test="http://test">
<soapenv:Header/>
<soapenv:Body>
<test:adder>
<test:a>5</test:a>
<test:b>1</test:b>
</test:adder>
</soapenv:Body>
</soapenv:Envelope>
liefert
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<adderResponse xmlns="http://test">
<adderReturn>6</adderReturn>
</adderResponse>
</soapenv:Body>
</soapenv:Envelope>
Leider bekomme ich es aber nicht hin, dass ein Javascript einen Respons liefert. Ich hätte es wie folgt versucht:
<html>
<head>
<title>SOAP JavaScript Client Test</title>
<script type="text/javascript">
function soap() {
var xmlhttp = new XMLHttpRequest();
xmlhttp.open('POST', 'http://localhost:8080/WebServiceTest/services/Adder', true);
xmlhttp.setRequestHeader('Content-Type', 'text/xml');
var sr =
'<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:test="http://test">' +
'<soapenv:Header/>' +
'<soapenv:Body>' +
'<test:adder>' +
'<test:a>5</test:a>' +
'<test:b>1</test:b>' +
'</test:adder>' +
'</soapenv:Body>' +
'</soapenv:Envelope>';
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4) {
if (xmlhttp.status == 200) {
alert(xmlhttp.responseText);
// alert('done. use firebug/console to see network response');
}
}
}
// Send the POST request
xmlhttp.send(sr);
// send request
var res = xmlhttp.responseText;
alert(res);
}
</script>
</head>
<body>
<form name="Demo" action="" method="post">
<div>
<input type="button" value="SoaP" onclick="soap();" />
</div>
</form>
</body>
</html>
Ich bekomme einfach kein Ergebnis.
Ich habe mir schon die Finger wund gegoogelt, leider wirds nicht besser.
Ich wäre über jede Hilfe sehr dankbar.