[MOBY-dev] problems with retrieveService() in Perl API
José María Fernández González
jmfernandez at cnb.uam.es
Fri Feb 10 21:03:37 UTC 2006
Hi everybody,
I have been reading perldoc documentation associated to SOAP::Lite 0.67
(aka Captain Ahab ;-)). Have you played with the new methods
soapversion, ns and default_ns? Perhaps they can help. I'm including the
fragments of the related documentation:
* soapversion(optional value)
$client->soapversion('1.2');
If no parameter is given, returns the current version of SOAP that is
being used by the client object to encode requests. If a parameter is
given, the method attempts to set that as the version of SOAP being
used. The value should be either 1.1 or 1.2.
* default_ns($uri)
Sets the default namespace for the request to the specified uri. This
overrides any previous namespace declaration that may have been set
using a previous call to "ns()" or "default_ns()". Setting the default
namespace causes elements to be serialized without a namespace prefix,
like so:
<soap:Envelope>
<soap:Body>
<myMethod xmlns="http://www.someuri.com">
<foo />
</myMethod>
</soap:Body>
</soap:Envelope>
* ns($uri,$prefix=undef)
Sets the namespace uri and optionally the namespace prefix for the
request to the specified values. This overrides any previous namespace
declaration that may have been set using a previous call to "ns()" or
"default_ns()". If a prefix is not specified, one will be generated for
you automatically. Setting the namespace causes elements to be
serialized with a declared namespace prefix, like so:
<soap:Envelope>
<soap:Body>
<my:myMethod xmlns:my="http://www.someuri.com">
<my:foo />
</my:myMethod>
</soap:Body>
</soap:Envelope>
Pieter Neerincx wrote:
> On 10-Feb-2006, at 4:36 PM, Frank Gibbons wrote:
>
>> 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.
>
> Ok, still have to test 0.67, but 0.66 definitely had some problems.
> However we can not cling onto 0.60 forever. especially now that 0.67
> is up at CPAN and that is what new Perlisch Mobifiers will get when
> they try MOBY out. So either we have to adapt or S::L has to be
> patched or both. I posted the "anyURI" problem at the S::L list and
> so far haven't had any feedback :(. I'll test 0.67 this weekend and
> repost. If S::L is not fixed fast enough I'll make a list of the
> small patches you'll need to make BioMOBY work with the latest
> "stable" S::L.
>
> Is your XML parsing problem now fixed by the installation of the new
> Perl interpreter or is that one still pending a fix?
>
>> 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,getWAtDBIdByPO
>> Acc">
>> <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
>>
>> _______________________________________________
>> MOBY-dev mailing list
>> MOBY-dev at biomoby.org
>> http://biomoby.org/mailman/listinfo/moby-dev
>
>
> Wageningen University and Research centre (WUR)
> Laboratory of Bioinformatics
> Transitorium (building 312) room 1034
> Dreijenlaan 3
> 6703 HA Wageningen
> The Netherlands
> phone: 0317-483 060
> fax: 0317-483 584
> mobile: 06-143 66 783
> pieter.neerincx at wur.nl
>
>
>
> _______________________________________________
> MOBY-dev mailing list
> MOBY-dev at biomoby.org
> http://biomoby.org/mailman/listinfo/moby-dev
>
>
--
José María Fernández González e-mail: jmfernandez at cnb.uam.es
Tlfn: (+34) 91 585 54 50 Fax: (+34) 91 585 45 06
Grupo de Diseño de Proteinas Protein Design Group
Centro Nacional de Biotecnología National Center of Biotechnology
C.P.: 28049 Zip Code: 28049
C/. Darwin nº 3 (Campus Cantoblanco, U. Autónoma), Madrid (Spain)
More information about the MOBY-dev
mailing list