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
