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</nam 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.
