Hi Trevor,

Our investigation so far was focussed on CXF which does not seem to populate the auto-generated classes from WSDL when the response from MartService' operation comes back in. With Keiichiro, we have been looking into logs and have found that the client (CXF and Jax-ws) does receive correctly formatted SOAP XML response but somehow unable to get this processed afterwards. We need to investigate it further since the service works well with both Perl and SOAPUI client. This may result in moving bits in WSDL (hopefully not) to make it compatible with the unhappy client.


Thanks for your patience.
Syed

trevor paterson (RI) wrote:
Hi Syed

did you mean that there is a problem with accessing the webservice ( or
is there a problem with my client ) ?

I see from the apacheCXF bug tracker there have been issues for their
wsdl2java generator using relative URL references for schema imports -
causing multiple http connections which can go over set limits... is
that relevant?

ta

Trevor Paterson PhD
new email [email protected]

Bioinformatics The Roslin Institute
Edinburgh University
Scotland EH25 9PS
phone +44 (0)131 5274477
http://www.roslin.ed.ac.uk
http://www.comparagrid.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.
-----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.

Reply via email to