[MOBY-dev] problems with retrieveService() in Perl API
Frank Gibbons
francis_gibbons at hms.harvard.edu
Fri Feb 10 15:36:38 UTC 2006
OK, so there is a problem with SOAP::Lite 0.67. I downgraded my
installation to 0.60 (which by the way, is reported here
(http://soaplite.com/download.html) as being the recommended stable
release, and now at least I can retrieveService details sufficiently to
build a service instance. If upgraded back to 0.67, and the problem
re-appears, so I'm downgrading to 0.60, where I will stay.
However, as I discovered, when a user simply installs SOAP::Lite from CPAN,
they may get quite a different version than 0.60 (I got 0.67), in which
case, the message gets sent out correctly on the wire, but is perceived as
empty by MOBY Central. I don't know much about the details of packaging
SOAP requests, and you can read the gory details below for yourselves, but
it appears that SOAP::Lite 0.60 and SOAP::Lite 0.67 do not understand each
other. The clue was given by the User-Agent and SOAPServer lines, showing
that my request was sent using SOAP::Lite/Perl/0.67, and the error message
sent in response was generated by SOAP::Lite/Perl/0.60
So, mystery solved. I'll put a check for SOAP::Lite's version, and a
warning for this into the Makefile, until we can figure out what the real
solution to this problem is.
Thanks to Mark & Pieter for their help and suggestions.
-Frank
================================== SOAP::Lite +trace output
============================
SOAP::Transport::HTTP::Client::send_receive: POST
http://mips.gsf.de/cgi-bin/proj/planet/moby/MOBY-Central.pl HTTP/1.1
Accept: text/xml
Accept: multipart/*
Accept: application/soap
User-Agent: SOAP::Lite/Perl/0.67
Content-Length: 1539
Content-Type: text/xml; charset=utf-8
SOAPAction: "http://mips.gsf.de/MOBY/Central#retrieveService"
<?xml version="1.0" encoding="UTF-8"?><soap:Envelope
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><retrieveService
xmlns="http://mips.gsf.de/MOBY/Central"><c-gensym6 xsi:type="xsd:anyURI">
<retrieveService>
<Service authURI="www.watdb.nl" serviceName="getWAtDBIdByPOAcc"
lsid="urn:lsid:biomoby.org:serviceinstance:www.watdb.nl,getWAtDBIdByPOAcc">
<serviceType>Retrieval</serviceType>
<authoritative>1</authoritative>
<Category>moby</Category>
<Description><![CDATA[Returns a list of WAtDB mutantline ids with
a certain PO accession number]]></Description>
<contactEmail>paulien.adamse at wur.nl</contactEmail>
<signatureURL/>
<URL>http://www.watdb.nl/moby-live/cgi-bin/MOBY/Services/Watdb_mobyservices.py</URL>
<Input>
<Simple articleName="">
<objectType
lsid="urn:lsid:biomoby.org:objectclass:Object">Object</objectType>
<Namespace
lsid="urn:lsid:biomoby.org:namespacetype:PO_acc">PO_acc</Namespace>
</Simple>
</Input>
<Output>
<Simple articleName="">
<objectType
lsid="urn:lsid:biomoby.org:objectclass:Object">Object</objectType>
<Namespace
lsid="urn:lsid:biomoby.org:namespacetype:WAtDB_id">WAtDB_id</Namespace>
</Simple>
</Output>
<secondaryArticles>
</secondaryArticles>
</Service>
</retrieveService></c-gensym6></retrieveService></soap:Body></soap:Envelope>
SOAP::Transport::HTTP::Client::send_receive: HTTP::Response=HASH(0x8906a8c)
SOAP::Transport::HTTP::Client::send_receive: HTTP/1.1 500 Internal Server Error
Connection: close
Date: Fri, 10 Feb 2006 15:31:05 GMT
Server: Apache
Content-Length: 559
Content-Type: text/xml; charset=utf-8
Client-Date: Fri, 10 Feb 2006 15:29:58 GMT
Client-Peer: 146.107.217.142:80
Client-Response-Num: 1
SOAPServer: SOAP::Lite/Perl/0.60
<?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Empty
String at /home/users/plant/lib/perl/MOBY/Central.pm line 2457
</faultstring></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
SOAP::Deserializer::deserialize: ()
SOAP::Parser::decode: ()
SOAP::SOM::new: ()
SOAP::SOM::DESTROY: ()
Connection to MOBY Central at URI 'http://mips.gsf.de/MOBY/Central' died
because:
SOAP-ENV:Server : Empty String at
/home/users/plant/lib/perl/MOBY/Central.pm line 2457
ERROR ERROR ERROR
At 09:56 AM 2/10/2006, you wrote:
>At 05:57 AM 2/10/2006, you wrote:
> >for that one, but that gave me the same results. I currently running
> >on SOAP::Lite 0.66 with custom patches, but I'm going to try 0.67
> >today... If you reinstalled Perl, did you also reinstall SOAP::Lite?
> >If yes which version? In case it's 0.60+ you might have an "anyURI"
> >problem.
>
>Yes, when I re-installed the interpreter (built from source 5.8.6), I
>reinstalled all of the modules too, from CPAN. I have SOAP::Lite version
>0.67 installed. What is the "anyURI" problem you mention?
>
>Thanks for the response, Pieter.
>
>-Frank
>
>
>PhD, Computational Biologist,
>Harvard Medical School BCMP/SGM-322, 250 Longwood Ave, Boston MA 02115, USA.
>Tel: 617-432-3555 Fax:
>617-432-3557 http://llama.med.harvard.edu/~fgibbons
>
>_______________________________________________
>MOBY-dev mailing list
>MOBY-dev at biomoby.org
>http://biomoby.org/mailman/listinfo/moby-dev
PhD, Computational Biologist,
Harvard Medical School BCMP/SGM-322, 250 Longwood Ave, Boston MA 02115, USA.
Tel: 617-432-3555 Fax:
617-432-3557 http://llama.med.harvard.edu/~fgibbons
More information about the MOBY-dev
mailing list