зеркало из https://github.com/mozilla/gecko-dev.git
SOAP calling tests
This commit is contained in:
Родитель
0d8f10e1f6
Коммит
279fba5b00
|
@ -0,0 +1,91 @@
|
|||
<HTML>
|
||||
<HEAD>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H1>SOAP call test</H1>
|
||||
<SCRIPT>
|
||||
|
||||
// Passed in as the response handler in the asynchronous case
|
||||
// and called directly below in the synchronous case
|
||||
function onresponse(resp, call) {
|
||||
if (resp == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Was there a SOAP fault in the response?
|
||||
if (resp.generatedFault()) {
|
||||
var f = resp.fault;
|
||||
var detail = f.detail;
|
||||
var ds = new XMLSerializer();
|
||||
var detailStr = ds.serializeToString(detail);
|
||||
alert("Fault:\nFault code: " + f.faultCode + "\nFault string: " + f.faultString + "\nFault actor: " + f.faultActor + "\nDetail: " + detailStr);
|
||||
}
|
||||
else {
|
||||
var ret = resp.returnValue;
|
||||
var val = ret.value;
|
||||
var retStr = "Success:\nName: " + ret.name + "\nValue: " + val;
|
||||
// In this case, we happen to know that the result value is an array
|
||||
// and the 5th parameter is a struct.
|
||||
var obj = val[4];
|
||||
retStr += "\nObject:";
|
||||
for (i in obj) {
|
||||
retStr += "\n" + i + ":" + obj[i] + "\n";
|
||||
}
|
||||
alert(retStr);
|
||||
}
|
||||
}
|
||||
|
||||
function makeCall(syncCall, faultCall) {
|
||||
var s = new SOAPCall();
|
||||
// The targetObjectURI, methodName and destinatioName are mandatory.
|
||||
// The actionURI is optional.
|
||||
s.targetObjectURI = "uri:some-namespace";
|
||||
s.methodName = "GetLastTradePrice";
|
||||
if (faultCall) {
|
||||
s.destinationURI = "http://blueviper/cgi-bin/soapfault.cgi";
|
||||
}
|
||||
else {
|
||||
s.destinationURI = "http://blueviper/cgi-bin/soapsuccess.cgi";
|
||||
}
|
||||
s.actionURI = "uri:some action";
|
||||
|
||||
// Create parameter objects. This is needed if we want named parameters.
|
||||
// If we don't want them to be named, we can just pass the
|
||||
// raw JavaScript values into the setParameters method.
|
||||
var p1 = new SOAPParameter("foo", "a string");
|
||||
var p2 = new SOAPParameter("bar", 4);
|
||||
var p3 = new SOAPParameter();
|
||||
p3.name = "baz";
|
||||
p3.value = true;
|
||||
var p4 = new SOAPParameter();
|
||||
p4.name = "bob";
|
||||
p4.value = new Array(3, "another string", false, 5.235);
|
||||
|
||||
function Dog(name,breed,color) {
|
||||
this.name=name
|
||||
this.breed=breed
|
||||
this.color=color
|
||||
}
|
||||
|
||||
// Set the parameters on the call object. Note that in this case,
|
||||
// the last parameter is an object that will be translated into
|
||||
// a struct parameter. It does not have a parameter wrapper because
|
||||
// we don't need it to be named
|
||||
s.setParameters(p1, p2, p3, p4, new Dog("Fido", "Lab", "Black"));
|
||||
|
||||
if (syncCall) {
|
||||
var r = s.invoke();
|
||||
onresponse(r, s);
|
||||
}
|
||||
else {
|
||||
s.asyncInvoke(onresponse);
|
||||
}
|
||||
}
|
||||
</SCRIPT>
|
||||
<P>
|
||||
<FORM>
|
||||
<INPUT TYPE="button" VALUE="Sync call" onclick="makeCall(true, false);">
|
||||
<INPUT TYPE="button" VALUE="Async call" onclick="makeCall(false, false);">
|
||||
<INPUT TYPE="button" VALUE="Fault call" onclick="makeCall(true, true);">
|
||||
</BODY>
|
||||
</HTML>
|
|
@ -0,0 +1,32 @@
|
|||
#!/usr/bin/perl
|
||||
|
||||
# Get and log the input
|
||||
open(LOGFILE, ">/tmp/dumpfile2");
|
||||
print LOGFILE `date`;
|
||||
|
||||
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
|
||||
print LOGFILE $ENV{'REQUEST_METHOD'};
|
||||
print LOGFILE $ENV{'CONTENT_LENGTH'};
|
||||
print LOGFILE $buffer;
|
||||
close LOGFILE;
|
||||
|
||||
# Send the response
|
||||
print "Content-type: text/xml\n\n";
|
||||
print "<SOAP-ENV:Envelope xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\" SOAP-ENV:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\" xmlns:SOAP-ENC=\"http://schemas.xmlsoap.org/soap/encoding/\" xmlns:xsi=\"http://www.w3.org/1999/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/1999/XMLSchema\">\n";
|
||||
print "<SOAP-ENV:Body>\n";
|
||||
print " <SOAP-ENV:Fault>\n";
|
||||
print " <faultcode>SOAP-ENV:Server</faultcode>\n";
|
||||
print " <faultstring>Server Error</faultstring>\n";
|
||||
print " <detail>\n";
|
||||
print " <e:myfaultdetails xmlns:e=\"Some-URI\">\n";
|
||||
print " <message>\n";
|
||||
print " My application didn't work\n";
|
||||
print " </message>\n";
|
||||
print " <errorcode>\n";
|
||||
print " 1001\n";
|
||||
print " </errorcode>\n";
|
||||
print " </e:myfaultdetails>\n";
|
||||
print " </detail>\n";
|
||||
print " </SOAP-ENV:Fault>\n";
|
||||
print "</SOAP-ENV:Body>\n";
|
||||
print "</SOAP-ENV:Envelope>\n";
|
|
@ -0,0 +1,37 @@
|
|||
#!/usr/bin/perl
|
||||
|
||||
# Get and log the input
|
||||
open(LOGFILE, ">/tmp/dumpfile2");
|
||||
print LOGFILE `date`;
|
||||
|
||||
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
|
||||
print LOGFILE $ENV{'REQUEST_METHOD'};
|
||||
print LOGFILE $ENV{'CONTENT_LENGTH'};
|
||||
print LOGFILE $buffer;
|
||||
close LOGFILE;
|
||||
|
||||
# Send the response
|
||||
print "Content-type: text/xml\n\n";
|
||||
print "<SOAP-ENV:Envelope xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\" SOAP-ENV:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\" xmlns:SOAP-ENC=\"http://schemas.xmlsoap.org/soap/encoding/\" xmlns:xsi=\"http://www.w3.org/1999/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/1999/XMLSchema\">\n";
|
||||
print "<SOAP-ENV:Body>\n";
|
||||
print "<m:GetLastTradePriceResponse xmlns:m=\"uri:some-namespace\">\n";
|
||||
print "<SOAP-ENC:Array SOAP-ENC:arrayType=\"xsd:ur-type[5]\">\n";
|
||||
print " <foo xsi:type=\"xsd:int\">23</foo>\n";
|
||||
print " <SOAP-ENC:boolean>false</SOAP-ENC:boolean>\n";
|
||||
print " <bar xsi:type=\"xsd:float\">0.234</bar>\n";
|
||||
print " <baz xsi:type=\"SOAP-ENC:Array\" SOAP-ENC:arrayType=\"xsd:short[]\">\n";
|
||||
print " <element1>2</element1>\n";
|
||||
print " <element2>3</element2>\n";
|
||||
print " <foobar>4</foobar>\n";
|
||||
print " <ignoredType xsi:type=\"xsd:float\">5</ignoredType>\n";
|
||||
print " <SOAP-ENC:int>45</SOAP-ENC:int>\n";
|
||||
print " </baz>\n";
|
||||
print " <bob>\n";
|
||||
print " <inst1>untyped string</inst1>\n";
|
||||
print " <inst2 xsi:type=\"xsd:byte\">c</inst2>\n";
|
||||
print " <SOAP-ENC:int>456</SOAP-ENC:int>\n";
|
||||
print " </bob>\n";
|
||||
print "</SOAP-ENC:Array>\n";
|
||||
print "</m:GetLastTradePriceResponse>\n";
|
||||
print "</SOAP-ENV:Body>\n";
|
||||
print "</SOAP-ENV:Envelope>\n";
|
|
@ -0,0 +1,91 @@
|
|||
<HTML>
|
||||
<HEAD>
|
||||
</HEAD>
|
||||
<BODY>
|
||||
<H1>SOAP call test</H1>
|
||||
<SCRIPT>
|
||||
|
||||
// Passed in as the response handler in the asynchronous case
|
||||
// and called directly below in the synchronous case
|
||||
function onresponse(resp, call) {
|
||||
if (resp == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Was there a SOAP fault in the response?
|
||||
if (resp.generatedFault()) {
|
||||
var f = resp.fault;
|
||||
var detail = f.detail;
|
||||
var ds = new XMLSerializer();
|
||||
var detailStr = ds.serializeToString(detail);
|
||||
alert("Fault:\nFault code: " + f.faultCode + "\nFault string: " + f.faultString + "\nFault actor: " + f.faultActor + "\nDetail: " + detailStr);
|
||||
}
|
||||
else {
|
||||
var ret = resp.returnValue;
|
||||
var val = ret.value;
|
||||
var retStr = "Success:\nName: " + ret.name + "\nValue: " + val;
|
||||
// In this case, we happen to know that the result value is an array
|
||||
// and the 5th parameter is a struct.
|
||||
var obj = val[4];
|
||||
retStr += "\nObject:";
|
||||
for (i in obj) {
|
||||
retStr += "\n" + i + ":" + obj[i] + "\n";
|
||||
}
|
||||
alert(retStr);
|
||||
}
|
||||
}
|
||||
|
||||
function makeCall(syncCall, faultCall) {
|
||||
var s = new SOAPCall();
|
||||
// The targetObjectURI, methodName and destinatioName are mandatory.
|
||||
// The actionURI is optional.
|
||||
s.targetObjectURI = "uri:some-namespace";
|
||||
s.methodName = "GetLastTradePrice";
|
||||
if (faultCall) {
|
||||
s.destinationURI = "http://blueviper/cgi-bin/soapfault.cgi";
|
||||
}
|
||||
else {
|
||||
s.destinationURI = "http://blueviper/cgi-bin/soapsuccess.cgi";
|
||||
}
|
||||
s.actionURI = "uri:some action";
|
||||
|
||||
// Create parameter objects. This is needed if we want named parameters.
|
||||
// If we don't want them to be named, we can just pass the
|
||||
// raw JavaScript values into the setParameters method.
|
||||
var p1 = new SOAPParameter("foo", "a string");
|
||||
var p2 = new SOAPParameter("bar", 4);
|
||||
var p3 = new SOAPParameter();
|
||||
p3.name = "baz";
|
||||
p3.value = true;
|
||||
var p4 = new SOAPParameter();
|
||||
p4.name = "bob";
|
||||
p4.value = new Array(3, "another string", false, 5.235);
|
||||
|
||||
function Dog(name,breed,color) {
|
||||
this.name=name
|
||||
this.breed=breed
|
||||
this.color=color
|
||||
}
|
||||
|
||||
// Set the parameters on the call object. Note that in this case,
|
||||
// the last parameter is an object that will be translated into
|
||||
// a struct parameter. It does not have a parameter wrapper because
|
||||
// we don't need it to be named
|
||||
s.setParameters(p1, p2, p3, p4, new Dog("Fido", "Lab", "Black"));
|
||||
|
||||
if (syncCall) {
|
||||
var r = s.invoke();
|
||||
onresponse(r, s);
|
||||
}
|
||||
else {
|
||||
s.asyncInvoke(onresponse);
|
||||
}
|
||||
}
|
||||
</SCRIPT>
|
||||
<P>
|
||||
<FORM>
|
||||
<INPUT TYPE="button" VALUE="Sync call" onclick="makeCall(true, false);">
|
||||
<INPUT TYPE="button" VALUE="Async call" onclick="makeCall(false, false);">
|
||||
<INPUT TYPE="button" VALUE="Fault call" onclick="makeCall(true, true);">
|
||||
</BODY>
|
||||
</HTML>
|
|
@ -0,0 +1,32 @@
|
|||
#!/usr/bin/perl
|
||||
|
||||
# Get and log the input
|
||||
open(LOGFILE, ">/tmp/dumpfile2");
|
||||
print LOGFILE `date`;
|
||||
|
||||
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
|
||||
print LOGFILE $ENV{'REQUEST_METHOD'};
|
||||
print LOGFILE $ENV{'CONTENT_LENGTH'};
|
||||
print LOGFILE $buffer;
|
||||
close LOGFILE;
|
||||
|
||||
# Send the response
|
||||
print "Content-type: text/xml\n\n";
|
||||
print "<SOAP-ENV:Envelope xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\" SOAP-ENV:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\" xmlns:SOAP-ENC=\"http://schemas.xmlsoap.org/soap/encoding/\" xmlns:xsi=\"http://www.w3.org/1999/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/1999/XMLSchema\">\n";
|
||||
print "<SOAP-ENV:Body>\n";
|
||||
print " <SOAP-ENV:Fault>\n";
|
||||
print " <faultcode>SOAP-ENV:Server</faultcode>\n";
|
||||
print " <faultstring>Server Error</faultstring>\n";
|
||||
print " <detail>\n";
|
||||
print " <e:myfaultdetails xmlns:e=\"Some-URI\">\n";
|
||||
print " <message>\n";
|
||||
print " My application didn't work\n";
|
||||
print " </message>\n";
|
||||
print " <errorcode>\n";
|
||||
print " 1001\n";
|
||||
print " </errorcode>\n";
|
||||
print " </e:myfaultdetails>\n";
|
||||
print " </detail>\n";
|
||||
print " </SOAP-ENV:Fault>\n";
|
||||
print "</SOAP-ENV:Body>\n";
|
||||
print "</SOAP-ENV:Envelope>\n";
|
|
@ -0,0 +1,37 @@
|
|||
#!/usr/bin/perl
|
||||
|
||||
# Get and log the input
|
||||
open(LOGFILE, ">/tmp/dumpfile2");
|
||||
print LOGFILE `date`;
|
||||
|
||||
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
|
||||
print LOGFILE $ENV{'REQUEST_METHOD'};
|
||||
print LOGFILE $ENV{'CONTENT_LENGTH'};
|
||||
print LOGFILE $buffer;
|
||||
close LOGFILE;
|
||||
|
||||
# Send the response
|
||||
print "Content-type: text/xml\n\n";
|
||||
print "<SOAP-ENV:Envelope xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\" SOAP-ENV:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\" xmlns:SOAP-ENC=\"http://schemas.xmlsoap.org/soap/encoding/\" xmlns:xsi=\"http://www.w3.org/1999/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/1999/XMLSchema\">\n";
|
||||
print "<SOAP-ENV:Body>\n";
|
||||
print "<m:GetLastTradePriceResponse xmlns:m=\"uri:some-namespace\">\n";
|
||||
print "<SOAP-ENC:Array SOAP-ENC:arrayType=\"xsd:ur-type[5]\">\n";
|
||||
print " <foo xsi:type=\"xsd:int\">23</foo>\n";
|
||||
print " <SOAP-ENC:boolean>false</SOAP-ENC:boolean>\n";
|
||||
print " <bar xsi:type=\"xsd:float\">0.234</bar>\n";
|
||||
print " <baz xsi:type=\"SOAP-ENC:Array\" SOAP-ENC:arrayType=\"xsd:short[]\">\n";
|
||||
print " <element1>2</element1>\n";
|
||||
print " <element2>3</element2>\n";
|
||||
print " <foobar>4</foobar>\n";
|
||||
print " <ignoredType xsi:type=\"xsd:float\">5</ignoredType>\n";
|
||||
print " <SOAP-ENC:int>45</SOAP-ENC:int>\n";
|
||||
print " </baz>\n";
|
||||
print " <bob>\n";
|
||||
print " <inst1>untyped string</inst1>\n";
|
||||
print " <inst2 xsi:type=\"xsd:byte\">c</inst2>\n";
|
||||
print " <SOAP-ENC:int>456</SOAP-ENC:int>\n";
|
||||
print " </bob>\n";
|
||||
print "</SOAP-ENC:Array>\n";
|
||||
print "</m:GetLastTradePriceResponse>\n";
|
||||
print "</SOAP-ENV:Body>\n";
|
||||
print "</SOAP-ENV:Envelope>\n";
|
Загрузка…
Ссылка в новой задаче