[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