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

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)"/>

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

Reply via email to