Thanks for the detail steps. They are really helpful.
Raymond
--------------------------------------------------
From: "Phillips, Chad" <[email protected]>
Sent: Friday, October 16, 2009 8:47 AM
To: <[email protected]>
Subject: RE: reference to jax-ws external web service (calling it)
> Raymond beat me to it but since I already wrote most of this up, here
> are
> the steps that I've used in the past (these are the same things used by
> the sample that Raymond is referring to):
>
> 1.) Get the WSDL for the service you want to access
> 2.) Run wsimport on the WSDL
> 3.) Add an attribute (for the reference) to your component of the
> service
> interface type that was generated via wsimport and use the Reference
> annotation. So something like:
>
> import org.osoa.sca.annotations.Reference;
> import com.ext.FooService;
>
> public class SomeComponent implements SomeService {
> @Reference
> protected FooService fooService;
> ...
> }
>
> 4.) Add the reference info to the component in your .composite file:
>
> <component name="SomeComponent">
> <implementation.java class="bar.SomeComponent" />
> <reference name="fooService">
> <binding.ws
> wsdlElement="http://ext.com#wsdl.port(SvcName/PortName)"
> uri="http://somehost/FooService" />
> </reference>
> </component>
>
> So, when your composite app loads up, the runtime will take care of
> populating the reference with a valid WS client pointing to the
> endpoint
> specified in your .composite file. If you leave off the uri attribute,
> I
> believe whatever endpoint was specified in the original WSDL will be
> used.
>
> -----Original Message-----
> From: Raymond Feng [mailto:[email protected]]
> Sent: Friday, October 16, 2009 08:41
> To: user
> Subject: Re: reference to jax-ws external web service (calling it)
>
> Please take a look at the sample at [1]. It uses "wsimport" to generate
> java
> interfaces from a WSDL, and use it to talk to external weather WS using
> Tuscany SCA.
>
> <composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
> xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.0"
> targetNamespace="http://weather" name="WeatherForecast">
> <component name="WeatherForecastService">
> <implementation.java class="weather.WeatherForecastImpl" />
> <reference name="weatherForecast">
> <binding.ws
>
wsdlElement="http://www.webservicex.net#wsdl.port(WeatherForecast/WeatherForecastSoap)"
> />
> </reference>
> </component>
> </composite>
>
> Please note binding.ws is used.
>
> [1]
>
https://svn.apache.org/repos/asf/tuscany/branches/sca-java-1.x/samples/zipcode-jaxws/
>
> Thanks,
> Raymond
> --------------------------------------------------
> From: <[email protected]>
> Sent: Friday, October 16, 2009 7:42 AM
> To: "user" <[email protected]>
> Subject: reference to jax-ws external web service (calling it)
>
>> Hi,
>>
>> i used tuscany but i have not found the right directions how to call
>> an
>> external web service.. first of all, my question is:
>>
>> can an external webservices implemented in JAX-WS be used as
>> components
>> in
>> a SCA architecture (or this is right only for bpel process and SCA
>> pure
>> java classes)?
>>
>> if it's so, how can pass a jax-ws reference in a SCA java class and
>> call
>> it? i see the document:
>> http://www.osoa.org/display/Main/JAX-WS+Services+Integration
>> but the jaxws.implementation doesn't work
>> (tuscany give me:
>>
>> GRAVE: XMLSchema validation error occured in: Calculator.composite
>> ,line
>> =
>> 63, column = 9, Message = cvc-complex-type.2.4.a: Invalid content was
>> found starting with element 'implementation.jaxws'
>>
>> Somebody told me that in 2008 this implementation didin't existed yet:
>>
>>
http://mail-archives.apache.org/mod_mbox/tuscany-user/200801.mbox/%[email protected]%3e
>>
>> today?? there is something in tuscany that works?????
>>
>> 2)An idea could be: i can use the java artifact get by the wsimport
>> utility (from wsdl to java code interfaces) and invoke my jax-ws web
>> services into a pure java SCA class?
>>
>>
>> thank you very much!
>>
>> Roby
>>