Syed
Until/unless you switch back the live server to use port:80 in the xsd
namespace the following code works...
this sends and receives the correct SOAP messages on the wire - the JAXB
mapping fails to generate the list of Mart objects correctly - but I guess that
is another story :(
(using CXF2.2 wsdl2java generated code)
QName SERVICE_NAME = new QName("http://www.biomart.org/MartServiceSoap",
"BioMartSoapService");
URL wsdlURL = new URL("http://www.biomart.org/biomart/martwsdl");
BioMartSoapService ss = new BioMartSoapService(wsdlURL, SERVICE_NAME);
MartServiceSoap port = ss.getBioMartSoapPort();
List<Mart> result;
try {
result= port.getRegistry();
}catch (Excetpion e) { System.out.println(e.getMessage());}
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: 26 March 2009 11:54
> To: trevor paterson (RI)
> Cc: trevor paterson (RI); [email protected]; andy law (RI)
> Subject: Re: [mart-dev] portnumbers in target namespaces
>
> Hi Trevor,
>
> glad to hear that its heading in the right direction. Just
> for everyone's clarity, the solution is to type the URL in
> your Java client as :
>
> http://www.biomart.org:80/biomart/martwsdl
>
>
> right ?
>
> please confirm,
> Thanks
> Syed
>
>
> trevor paterson (RI) wrote:
> > Syed
> >
> > I see where my problem was..
> >
> > the port number was a red herring, I needed to be more explicit in
> > referencing the wsdl location when invoking the service
> >
> > I can now invoke a getRegistry request and get the correct response
> > back over the wire
> >
> > the jaxb mappings created by CXF wsdl2java still arent
> converting this to a List of Marts - but that is another story...
> >
> > thanks again
> >
> > Trevor Paterson
> >
> >
> >
> >> -----Original Message-----
> >> From: trevor paterson (RI)
> >
> >> you are correct - removing the port numer from the schem namespace
> >> doesn't fix the problem....
> >>
> >> the package generated by CXF wsdl2java is now named sensibly as --
> >> org.biomart.martservicesoap;
> >>
> >> and the namespace in the SOAP request is given as --
> >>
> >> <ns1:getRegistry
> >> xmlns:ns1="http://martservicesoap.biomart.org" />
> >>
> >>
> >>
> >> whereas in order to reference the schema ttypes it needs to be
> >> <ns1:getRegistry
> xmlns:ns1="http://www.biomart.org/MartServiceSoap"/>
> >> and I can't work out whther this is configurable....
> >>
> >> the getRegistry service is obviously OK as both Taverna and
> >> http://soapclient.com/soaptest.html can access it, and
> they specify
> >> the schema namespace correctly - see below
> >>
> >> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
> >> <SOAP-ENV:Envelope
> >> xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
> >> xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
> >> xmlns:tns="http://www.biomart.org/MartServiceSoap"
> >> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> >> xmlns:sawsdl="http://www.w3.org/ns/sawsdl"
> >> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> >>> <SOAP-ENV:Body><mns1:getRegistry
> >> xmlns:mns1="http://www.biomart.org/MartServiceSoap"></mns1:get
> > Registry>
> >> </SOAP-ENV:Body>
> >> </SOAP-ENV:Envelope>
> >>
> >> it also it looks to me like the CXF wsdl2java is not properly
> >> creating the complex Query type required for a
> queryRequest either....
> >>
> >> so maybe I will just resort to posting XML to the service or
> >> construct vanilla SOAP requests without wsdl stub generation
> >>
> >> ta
> >>
> >> trevor
> >>
> >
> >>> -----Original Message-----
> >>> From: Syed Haider [mailto:[email protected]]
> >
> >>> Hi Trevor,
> >>>
> >>> I am not sure if its really the port number.
> >>>
> >>> However, for your testing and convenience, I have removed
> the port
> >>> number (:80) from wsdl and associated xsd from the live server
> >>> (www.biomart.org) - please test against it and see if that helps,
> >>>
> >>>
> >>> Best,
> >>> Syed
> >>>
> >>>
> >>> trevor paterson (RI) wrote:
> >>>> Syed et al
> >>>>
> >>>> I posted the following to the CXF users list....
> >>>>
> >>
> http://www.nabble.com/portnumbers-in-target-namespaces-td22701556.htm
> >> l
> >>>>
> >>>> I am not sure whether (some of) my problems connecting to
> >>> martsoap are caused by this!
> >>>> Do you know if the port number in the namespace is
> >> problematic when
> >>>> autogenerating client code and whether I have to do some
> >>> munging to get round this?
> >>>>
> >>>> CROSS-POST>>
> >>>>
> >>>> I am having problems generating client code from a WSDL,
> >>> which I suspect may be because the WSDL imports a schema
> >> which has a
> >>> targetNamespace which includes a port number.
> >>>> the WSDL types:
> >>>>
> >>>> <types>
> >>>> <xsd:schema>
> >>>> <xsd:import
> >>> namespace="http://www.biomart.org:80/MartServiceSoap"
> >>>> schemaLocation="martxsd" />
> >>>> </xsd:schema>
> >>>> </types>
> >>>>
> >>>> the schema declaration:
> >>>>
> >>>> <xs:schema
> >>>> xmlns:tns="http://www.biomart.org:80/MartServiceSoap"
> >>>> xmlns:xs="http://www.w3.org/2001/XMLSchema"
> >>>> xmlns:sawsdl="http://www.w3.org/ns/sawsdl"
> >>>> targetNamespace="http://www.biomart.org:80/MartServiceSoap"
> >>>> version="1.0">
> >>>>
> >>>> wsdl2java by default generates client code in the package
> >>>> org.biomart._80.martservicesoap
> >>>>
> >>>> a SOAP request generated from client code generated using
> >>> wsdl2java:
> >>>> <soap:Body>
> >>>> <ns1:getRegistry
> >>> xmlns:ns1="http://martservicesoap._80.biomart.org " />
> >>>> </soap:Body>
> >>>>
> >>>> Am I naïve in thinking that xmlns:ns1 should =
> >>> "http://www.biomart.org:80/MartServiceSoap" in order to match the
> >>> schema namespace for the service?
> >>>> Is the namespace in the SOAP request made on the fly from
> >>> the package name of the code? and therefore is the ":80"
> >>> insurmountable?
> >>>> Is there a way to set the namespaces generated?
> >>>>
> >>>> thanks
> >>>> Trevor Paterson, Roslin Institute
> >>>>
> >>>> <<END CROSS-POST
> >>>>
> >>>>
> >>>> 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.
>