SOAP::WSDL error accessing remote site.
am 19.07.2007 09:14:48 von JohnHi
I am new to SOAP:WSDL. This remote site will return some DNA information.
It should be relatively straightforward - send an accession number and the
DNA information is returned.
I get an error message (see below). The code follows.
Any ideas?
John
#!/usr/bin/perl
use strict;
use warnings;
use SOAP::Lite +trace => 'debug';
use Data::Dumper;
use SOAP::WSDL;
print "Content-type: text/html\n\n";
# -----------------------------------------
my $URL="http://xml.nig.ac.jp/wsdl/GetEntry.wsdl";
my $operation="getXML_DDBJEntry";
my $access="AB00050";
my $no_dispatch=0; # must be zero
my $soap=SOAP::WSDL->new (wsdl=>$URL,no_dispatch=>$no_dispatch);
$soap->servicename("GetEntry");
$soap->wsdlinit;
$soap->on_action (sub{sprintf '%s/%s',@_});
$soap->portname("GetEntry");
my %args=(accession=>$access); # must be hash
my $som=$soap->call($operation,%args);
if ($som->fault) {
print "faultcode - " . $som->faultcode . "
";
print "faultstring - " . $som->faultstring . "
";
print "faultdetail - " . $som->faultdetail . "
";
print Dumper($som->faultdetail);
}
else {
my @all=$som->paramsout();
my $res=$som->result(); print Dumper($res);
print "Result is $res, outparams are @all
";
}
Response is as follow:-
faultcode - soap:Server
faultstring - getXML_DDBJEntry20In
faultdetail - HASH(0x9f47860)
$VAR1 = { 'stacktrace' => 'java.lang.NoSuchMethodException:
getXML_DDBJEntry20In at electric.wsdl.Operations.getOperations(Unknown
Source) at electric.wsdl.Operations.getOperation(Unknown Source) at
electric.soap.SOAPHandler.getOperationWithArgs(Unknown Source) at
electric.soap.SOAPHandler.readRequest(Unknown Source) at
electric.soap.SOAPHandler.invokeOnService(Unknown Source) at
electric.soap.SOAPHandler.invoke(Unknown Source) at
electric.soap.http.SOAPHTTPHandler.service(Unknown Source) at
electric.server.http.ServletServer.service(Unknown Source) at
javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at
org.apache.catalina.core.ApplicationFilterChain.internalDoFi lter(ApplicationFilterChain.java:247)
at