-----Original Message-----
From: Syed Haider [mailto:[email protected]]
Sent: 19 March 2009 21:34
To: trevor paterson (RI)
Cc: [email protected]
Subject: Re: [mart-dev] autogeneration of java service code
from martwsdl
Hi Trevor,
the problem has been reported recently and we are looking
into this right now, if I arrive to a solution (hopefully)
this week, I will write back.
Best,
Syed
trevor paterson (RI) wrote:
Hi
I am having problems accessing the Biomart SOAP services
programtically (using JAVA) and would appreciate anyone's helpful
opinion as to where the problem might lie, e.g. with the XFIRE code
generation from the WSDL and XSD schema, with the
composition of the
query, with namespaces or referencing the schema types.... etc
I *CAN* access the query service fine through Taverna by pointing
Taverna at the www.biomart.org/biomart/martwsdl , and
constructing an
appropriate query according to the wsdl + xsd - if I grap the
parameters that are generated to be added to the soap
request - they
look like this....
<parameters xmlns="http://www.biomart.org:80/MartServiceSoap">
<virtualSchemaName xmlns="">default</virtualSchemaName>
<header xmlns="">0</header>
<count xmlns=""/>
<uniqueRows xmlns="">0</uniqueRows>
<Dataset>
<name xmlns="">ggallus_gene_ensembl</name>
<Filter xmlns="">
<name>end</name>
<value>160000000</value>
</Filter>
<Filter xmlns="">
<name>start</name>
<value>156471905</value>
</Filter>
<Filter xmlns="">
<name>chromosome_name</name>
<value>1</value>
</Filter>
<Attribute xmlns="">
<name>end_position</name>
</Attribute>
<Attribute xmlns="">
<name>ensembl_gene_id</name>
</Attribute>
<Attribute xmlns="">
<name>start_position</name>
</Attribute>
</Dataset>
</parameters>
However, I have been trying to write JAVA code to call the
services,
using code generated from the WSDL using the Xfire tool
org.codehaus.xfire.gen.WsGen: using the generated code to
paramterise
and invoke the query service I can't seem to access the service...
I get the following error returned
<?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>
<soap:Fault>
<faultcode>soap:Client</faultcode>
<faultstring>Denied access to method (query) in class
(main) at
/ebi/www/biomart/perl/lib/perl5/site_perl/5.8.5//SOAP/Lite.pm
line 2678.</faultstring>
</soap:Fault>
</soap:Body>
</soap:Envelope>
[I get a similar error if I try one of the metadata queries such as
'getAttributes'.]
The request that is being sent over the wire, which is
built using the
XFIRE autogenerated code is...
[I get something very similar if I try to use CXF wsdl2java
autogenerated code instead of Xfire code ...]
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soap:Body>
<ns1:query xmlns:ns1="http://autoclient.biomart.org">
<ns1:in0>default</ns1:in0>
<ns1:in1>0</ns1:in1>
<ns1:in2>0</ns1:in2>
<ns1:in3>0</ns1:in3>
<ns1:in4>
<ns2:Dataset
xmlns:ns2="http://martservicesoap._80.biomart.org">
<attribute
xmlns="http://martservicesoap._80.biomart.org">
<Attribute>
<name>ensembl_gene_id</name>
</Attribute>
<Attribute>
<name>start_position</name>
</Attribute>
<Attribute>
<name>end_position</name>
</Attribute>
</attribute>
<filter
xmlns="http://martservicesoap._80.biomart.org">
<Filter>
<name>start</name>
<value>156471905</value>
</Filter>
<Filter>
<name>end</name>
<value>160000000</value>
</Filter>
<Filter>
<name>chromosome_name</name>
<value>1</value>
</Filter>
</filter>
<name
xmlns="http://martservicesoap._80.biomart.org">ggallus_gene_ensembl</n
am
e>
</ns2:Dataset>
</ns1:in4>
</ns1:query>
</soap:Body></soap:Envelope>
To me this looks pretty malformed, Whilst all the elements of the
query seem to be there, it looks like there might be
something wrong
with the ns1:namespace as the parameters are unnamed here,
whereas the
parameter elements have names in the WSDL. Also there are nesting
<filter> and <attribute> elements. I have a suspicion that
the import
of the xsd schema to the wsdl is somehow underlying these
problems...
Does anyone have any tips for successfully autogenerating
service code
- with XFIRE, CXF or an alternative.
thanks
Trevor Paterson PhD
new email [email protected]
<mailto:[email protected]>
Bioinformatics
The Roslin Institute
Edinburgh University
Scotland EH25 9PS
phone +44 (0)131 5274477
http://www.roslin.ed.ac.uk <http://www.roslin.ed.ac.uk/>
http://www.comparagrid.org <http://www.comparagrid.org/>
http://www.thearkdb.org <http://www.thearkdb.org/>
Please consider the environment before printing this e-mail
The University of Edinburgh is a charitable body, registered in
Scotland with registration number SC005336 Disclaimer:This
e-mail and
any attachments are confidential and intended solely for the use of
the recipient(s) to whom they are addressed. If you have
received it
in error, please destroy all copies and inform the sender.