Forgot to say, you'll also need to call
JaxWsProxyFactoryBean.setEndpointReference() with the transformed EPR.

So your code becomes something like:

 ClientProxyFactoryBean factory = new JaxWsProxyFactoryBean();
 factory.setEndpointReference(VersionTransformer.convertToInternal(epr));
 factory.setServiceClass(TestService.class);
 factory.setServiceName(testServiceName);
 TestService ts = (TestService) factory.create();

/Eoghan

2009/4/28 Eoghan Glynn <[email protected]>:
> Sorry, obviously I mis-read your original mail.
>
> This is simply a mismatch between the original CXF-specific
> EndpointReferenceType type and the standard JAX-WS 2.1
> EndpointReference type.
>
> You can convert from the latter to the former via
> org.apache.cxf.ws.addressing.VersionTransformer.convertToInternal():
>
> http://cxf.apache.org/javadoc/2.1.1/org/apache/cxf/ws/addressing/VersionTransformer.html#convertToInternal(javax.xml.ws.EndpointReference)
>
> Cheers,
> Eoghan
>
> 2009/4/28 Shannon Hastings <[email protected]>:
>> Thanks for you help.  I have moved to using the standard EPR's and I am
>> using cxf 2.2.1.  What I was actually looking for specifically was how to
>> use the JaxWS Client Factory with a standard EPR.  It does not seem to
>> support it.
>>
>> For example.  I want to get my client with the folowing code:
>> ClientProxyFactoryBean factory = new JaxWsProxyFactoryBean();
>>
>> But I cant seem to find a way to set the EPR on the factory so that when I
>> call "create()" the factory is configured properly to return the client with
>> the epr it is configured with.
>>
>>
>> On 4/28/09 5:27 AM, "Eoghan Glynn" <[email protected]> wrote:
>>
>>> Hi Shannon,
>>>
>>> Application usage of ServiceDelegateAccessor and the CXF-specific
>>> ServiceImpl was just a stop-gap for CXF 2.0.x as we were still stuck
>>> on JAX-WS 2.0.
>>>
>>> It was only in JAX-WS 2.1 that a standard JAX-WS API was introduced to
>>> allow an EPR-specific proxy be created via Service.getPort(). Support
>>> for JAX-WS 2.1 is available in CXF from version 2.1 onwards.
>>>
>>> What version of CXF are you using? If 2.0.x, you'll need to upgarde.
>>> If you're already on 2.1.x or 2.2.x, then just switch over to the
>>> standard API[1].
>>>
>>> An example of the standard API usage can be seen in the
>>> corba/bank_ws_addressing demo[2].
>>>
>>> Cheers,
>>> Eoghan
>>
>>
>>
>

Reply via email to