Hi

I can't find any information on inheritance in the CXF doc.
The only info I found was on the XFire site and the Jira issue CXF-1164

Say, I have:

public class Parent {
   private String p1;
(+ get/set accessors)
}
public class Child extends Parent {
   private String c1;
   private String c2;
(+ get/set accessors)   
}

The SOAP exposed interface is:
public interface IExample {
   public Parent findSomething(... params...);
}

The implementation is:
public class ExampleImpl implements IExample {
   public Parent findSomething(... params...) {
      return new Child();
   }
}

The WSDL shows:
...
<xsd:complexType name="Child">
  <xsd:sequence>
<xsd:element minOccurs="0" name="p1" nillable="true" type="xsd:string"/> <xsd:element minOccurs="0" name="c1" nillable="true" type="xsd:string"/> <xsd:element minOccurs="0" name="c2" nillable="true" type="xsd:string"/>
  </xsd:sequence>
</xsd:complexType>
...


Now the client cannot do something like:
   Child ch = (Child)service.findSomething(... params ...);
as this will fail with a ClassCastException.

So is there a way to define inheritance (annotation? Spring config?) for the model objects being returned so the WSDL generated shows the inheritance properly allowing the clients to cast objects accordingly?

Thx.

--
Frederic P. Soulier
OpenPGP key available on http://pgpkeys.mit.edu/
1024D/BA6700ED   49A6 8E8E 4230 8D41 1ADE  B649 3203 1DD2 BA67 00ED

Reply via email to