|
I'm having some difficulty reconciling the difference in terminology between the perl docs for SOAP::Lite and information provided by the vendor for writing a simple client. Specifically, I believe that my script does not work because I am not setting up the correct URI. Here is the information (sanitized) provided by the vendor:
The following are the Web Service values in order to call this new Web service:
- AccessURL: http://127.0.0.1:8080/4DSOAP/
- SoapAction: ADMS_WebService#WSS_SetPackageStatus
- MethodName: WSS_SetPackageStatus
- NameSpace: http://www.MyDomain.com/ADMS/namespace/default
- Type: Dynamic
- ArgumentNames: PackageName, PackageStatus
Here is the relavent code segment:
use SOAP::Lite +trace=&rt; [qw(transport method fault)];
.
.
.
my $soapuri="http://www.MyDomain.com/ADMS/namespace/default";
my $soapproxy="http://imageone.mydomain.com:8080/4DSOAP";
.
.
.
my $soap=SOAP::Lite
->uri($soapuri)
->proxy($soapproxy);
$results=$soap->WSS_SetPackageStatus(PackageName=>$data,PackageStatus=>$status);
if ($results->fault()) {
print("SOAP error:",$results->faultcode(),":",$results->faultstring(),"\n");
}
else {
print("SOAP result: ",$results->result(),"\n");
}
The output indicates the value of 'fault' is false but there is no 'result'. The method should cause a change to a database but that change does not occur. Since there is no database change nor any 'result', I have to assume the method did not get executed (although I don't know why there was no 'fault').
The documentation is also fuzzy on how variables are passed to the method. They are, 'PackageName' and 'PackageStatus'. I don't know if I passed them correctly or not but even if I didn't, I would expect some kind of error.
In any case, the missing piece of the puzzle, to me, is the SoapAction. I don't see where that goes nor the significance of 'Type' from my programming perspective. Can someone figure out, from the given information, what the correct URI should be. Assuming, of course, that there is not something else wrong. TIA.
|