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]

Reply via email to