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
