Cheers for the input Dan. At least I know to concentrate my efforts on non-Aegis routes now. I only started with Aegis as is what we've always used (and have done since the days of XFire). It certainly would be wise to take another look at JAXB to see how it compares nowadays.

Lee,

Daniel Kulp wrote:
Honestly, I don't think there is a way to currently do this with Aegis.   Aegis currently 
doesn't have any concept of an XmlSeeAlso annotation or similar to be able to set 
additional classes to add into the Aegis context.     You MAY be able to programatically 
create an AegisContext object and configure in some "root" types to add 
additional class, but I'm not really sure how that would all work.

Dan



On Mar 8, 2013, at 6:57 AM, Lee Theobald<[email protected]>  wrote:

HI all,

I'm trying to get a JAX-WS service (with Aegis as the data binding) working as 
I want but I'm falling at the last hurdle.  I've got a method defined as 
follows:

    public Field getField(String sourceName, String fieldName) throws 
FieldNotFoundException;

Field is an interface.  Currently I have an implementation of FieldImpl that 
returns fine via the service.  The trouble is that I want to return fields that 
extend FieldImpl.  So for example, I have the below type hierarchy:

    Field
         FieldImpl
             MediaFieldImpl
             TypeFieldImpl
             RelatedFieldImpl

I'd like to return media, type&  related fields but when I attempt to return 
MediaFieldImpl via getField, I only get back the parts of MediaFieldImpl that conform to the 
Field interface (so none of the extra fields defined in MediaFieldImpl).  I've been trying a 
variety of different things (@XmlSeeAlso, @XmlRootElement&  various different annotations 
in places) to get this working but having no luck.  Best I've got so far is the 
MediaFieldImpl, TypeFieldImpl etc. classes appearing in the WSDL via a dummy method as 
suggested in an IBM 
article<http://www.ibm.com/developerworks/websphere/techjournal/0401_brown/brown.html>. 
 But I still can't get the correct type of Field returned from my method.

Does anyone have any suggestions on what else I can try or if I'm barking up the 
wrong tree?  This is using an old version of CXF (2.2) and I'm letting CXF generate 
the WSDL for me.  I realise I might have more luck if I take a more top-down 
approach&  write the WSDL myself but as this is an existing web service I'm 
trying to extend, I'd rather not rock the boat too much if I don't have to.

Cheers for any input,
Lee

Reply via email to