On 9/4/07, Raymond Feng <[EMAIL PROTECTED]> wrote:
>
> More comments inline.
>
> Thanks,
> Raymond
>
> ----- Original Message -----
> From: "Simon Laws" <[EMAIL PROTECTED]>
> To: <[email protected]>
> Sent: Tuesday, September 04, 2007 11:09 AM
> Subject: Re: Referencing an external WebService
>
>
> > On 9/4/07, Raymond Feng <[EMAIL PROTECTED]> wrote:
> >>
> >> Hi,
> >>
> >> It seems that you hit a bug reported by
> >> https://issues.apache.org/jira/browse/TUSCANY-1646. As a result, we
> >> generate
> >> the WSDL from the java interface and it ends up with a similar but
> >> different
> >> WSDL.
> >>
> >> Thanks,
> >> Raymond
> >>
> >> ----- Original Message -----
> >> From: "Marco Dalco" <[EMAIL PROTECTED]>
> >> To: <[email protected]>
> >> Sent: Tuesday, September 04, 2007 3:53 AM
> >> Subject: Referencing an external WebService
> >>
> >>
> >> Hi,
> >>
> >>
> >>
> >> I am trying to reference an external WebService, hosted on JBoss from
> >> Tuscany. The WebService on JBoss is an EJB with a @WebService
> >> annotation. Using a tool like SoapUI to access the WebService works
> >> fine. From Tuscany it doesn't work, but I can see (using an
> intermediate
> >> logging proxy tool, Trivial Proxy) that Tuscany is trying to access the
> >> WebService, without reading the WSDL first (even if I specify
> >> wsdli:wsdlLocation with the URL followed by "?WSDL") and that the
> >> message sent to JBoss is quite similar to the one SoapUI sends. The key
> >> differences are:
> >>
> >>
> >>
> >> 1)       The namespace of the method invoked, that in the Tuscany
> >> message has an additional "xsd" at the end
> >>
> >> 2)       The name of the parameter of the method, which is "arg0" with
> >> SoapUI and "param0" with Tuscany
> >>
> >>
> >>
> >> Modifying and sending the Tuscany message with SoapUI I can see that
> the
> >> point 1 is causing the failure and point 2 just causes the parameter
> >> passed to the EJB to be null.
> >>
> >> I don't know which versions of the namespace and parameter are correct,
> >> since I am using beta software (JBoss 5.0.0.-beta2 and Tuscany revision
> >> #568537).
> >>
> >> I tried using the "requires attribute", but Tuscany is complaining
> about
> >> the content not being a proper QName (tried 'requires="soap/1.1"').
> >>
> >>
> >>
> >> How can I make them work together? Is it a kind of bug or a matter of
> >> versions?
> >>
> >>
> >>
> >> Here are the messages I sent:
> >>
> >> (SoapUI):
> >>
> >> <soapenv:Envelope
> >> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
> >> xmlns:ejb="http://ejb.sca_ws_reference.ubiquity.net/";>
> >>
> >>    <soapenv:Header/>
> >>
> >>    <soapenv:Body>
> >>
> >>       <ejb:getWelcome>
> >>
> >>          <!--Optional:-->
> >>
> >>          <arg0>Hello!!!</arg0>
> >>
> >>       </ejb:getWelcome>
> >>
> >>    </soapenv:Body>
> >>
> >> </soapenv:Envelope>
> >>
> >>
> >>
> >> (Tuscany):
> >>
> >> <?xml version='1.0' encoding='UTF-8'?>
> >>
> >> <soapenv:Envelope
> >> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";>
> >>
> >>     <soapenv:Header>
> >>
> >>         <wsa:From xmlns:wsa="http://www.w3.org/2005/08/addressing";>
> >>
> >>
> >> <wsa:Address>http://www.w3.org/2005/08/addressing/anonymous
> </wsa:Address
> >> >
> >>
> >>             <wsa:ReferenceParameters />
> >>
> >>         </wsa:From>
> >>
> >>         <wsa:From xmlns:wsa="http://www.w3.org/2005/08/addressing";>
> >>
> >>
> >> <wsa:Address>http://www.w3.org/2005/08/addressing/anonymous
> </wsa:Address
> >> >
> >>
> >>             <wsa:ReferenceParameters>
> >>
> >>                 <axis2ns2:conversationID
> >> xmlns:axis2ns2="http://www.osoa.org/xmlns/sca/1.0
> ">d9353779-ca14-43d2-9e
> >> 5c-d0735b5f4b09</axis2ns2:conversationID>
> >>
> >>             </wsa:ReferenceParameters>
> >>
> >>         </wsa:From>
> >>
> >>     </soapenv:Header>
> >>
> >>     <soapenv:Body>
> >>
> >>         <_ns_:getWelcome
> >> xmlns:_ns_="http://ejb.sca_ws_reference.ubiquity.net/xsd";>
> >>
> >>             <_ns_:param0>Hello!!!</_ns_:param0>
> >>
> >>         </_ns_:getWelcome>
> >>
> >>     </soapenv:Body>
> >>
> >> </soapenv:Envelope>
> >>
> >>
> >>
> >> JBoss reply:
> >>
> >> <env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'>
> >>
> >>     <env:Header></env:Header>
> >>
> >>     <env:Body>
> >>
> >>         <env:Fault
> >> xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'>
> >>
> >>             <faultcode>env:Client
> >>
> >>             </faultcode>
> >>
> >>             <faultstring>Endpoint
> >> {http://ejb.sca_ws_reference.ubiquity.net/}SampleServiceImplPort does
> >> not contain operation meta data for:
> >> {http://ejb.sca_ws_reference.ubiquity.net/xsd}getWelcome
> >>
> >>             </faultstring>
> >>
> >>         </env:Fault>
> >>
> >>     </env:Body>
> >>
> >> </env:Envelope>
> >>
> >>
> >>
> >> Sca composite file:
> >>
> >> <composite
> >>
> >>     xmlns="http://www.osoa.org/xmlns/sca/1.0";
> >>
> >>     targetNamespace="http://ejb.sca_ws_reference.ubiquity.net/";
> >>
> >>     xmlns:tns="http://ejb.sca_ws_reference.ubiquity.net/";
> >>
> >>     xmlns:ejb="http://ejb.sca_ws_reference.ubiquity.net/";
> >>
> >>     xmlns:wsdli="http://www.w3.org/2004/08/wsdl-instance";
> >>
> >>     name="samplejeews">
> >>
> >>
> >>
> >>     <service
> >>
> >>         name="SampleService"
> >>
> >>         promote="SampleServiceComponent">
> >>
> >>         <interface.java
> >> interface="net.ubiquity.sca_ws_reference.ejb.SampleService" />
> >>
> >>     </service>
> >>
> >>
> >>
> >>     <component name="SampleServiceComponent">
> >>
> >>         <implementation.java
> >> class="net.ubiquity.sca_ws_reference.ejb.SampleServiceImpl" />
> >>
> >>         <reference name="ExternalWebService">
> >>
> >>             <binding.ws
> >>
> >>                                     port="18080"
> >>
> >>
> >> uri="
> http://localhost:18080/soa_sample_sca_ws_reference-tuscany0/_Sample
> >> ServiceImpl"> <!--18080 is the port of the proxy logger -->
> >>
> >>             </binding.ws>
> >>
> >>                         </reference>
> >>
> >>     </component>
> >>
> >>
> >>
> >> </composite>
> >>
> >>
> >>
> >> Thanks,
> >>
> >> Marco
> >>
> >>
> >>
> >>
> >> Information contained in this e-mail and any attachments are intended
> for
> >> the use of the addressee only, and may contain confidential information
> >> of
> >> Ubiquity Software Corporation. All unauthorized use, disclosure or
> >> distribution is strictly prohibited.  If you are not the addressee,
> >> please
> >> notify the sender immediately and destroy all copies of this email.
> >> Ubiquity
> >> Software Corporation plc, a company registered under the laws of
> England
> >> and
> >> Wales, Registration 2719723, registered offices at Eastern Business
> Park,
> >> Building 3, Wern Fawr Lane, St. Mellons, Cardiff CF3 5EA, Wales, United
> >> Kingdom.
> >>
> >>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: [EMAIL PROTECTED]
> >> For additional commands, e-mail: [EMAIL PROTECTED]
> >>
> >> I don't believe this is related to TUSCANY-1646 but I think it is right
> > that it is happening as binding.ws attempts to generate a wsdl on the
> fly.
> > Something to try would be to explicitly specify the wsdl to the
> binding.ws
> >
>
> Why do you think it's not related to TUSCANY-1646. If I read the message
> correctly, Marco was trying to see if Tuscany can get the WSDL from the
> service endpoint without packaging the WSDL locally. The SCA WS binding
> spec
> allows an optional "wsdli:wsdlLocation" attribute to explicitly reference
> a
> WSDL document. And we should be able to set the attribute to something
> like
> "http://localhost:8080/myService?WSDL";.
>
> > If you have a copy of the wsdl drop it into the contribution you are
> using
> > (put it wherever you .composite file is) then change binding.ws to read
> > something like
> >
> > <binding.ws wsdlElement="
> > http://bigbank#wsdl.port(AccountService/AccountServiceSoap)"/>
> >
>
> The "wsdlElement" is required no matter the WSDL is local or remote.
>
> > I took this from the big bank demo so you will need to fix this with the
> > namspace and  port name that you want to use from your WSDL.
> >
> > I believe this still works.I can't guarantee that this will work with
> your
> > WSDL but worth a try as it might move you a little further forward.
> >
> > Regards
> >
> > Simon
> >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
> I was just responding to the example as posted

uri="http://localhost:18080/soa_sample_sca_ws_reference-tuscany0/_SampleServiceImpl";>


but you are right the non functioning of ?wsdl is TUSCANY-1646

Simon

Reply via email to