Hi all,
I have this situation where I have to expose a method which has an
interface as an argument into a SOAP service (binding.ws). This interface is
being implemented by a couple of classes which are jaxb annotated. Basically
these classes that implement the interface are JAXB classes.
So in code this looks like this
public class Test{
...
public void testMethod(A a){
//The type A here is an interface.
}
...
}
@XmlRootElement(name = "A1", namespace = "http://server.fromjava/jaxws")
@XmlAccessorType(XmlAccessType.FIELD)
public class A1 implements A {
...
}
@XmlRootElement(name = "A2", namespace = "http://server.fromjava/jaxws")
@XmlAccessorType(XmlAccessType.FIELD)
public class A2 implements A {
...
}
When Test class above is exposed as a SOAP service the below exception
happens then the method 'testMethod' is invoked
org.apache.tuscany.sca.databinding.TransformationException:
com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 2 counts of
IllegalAnnotationExceptions
A is an interface, and JAXB can't handle interfaces.
this problem is related to the following location:
.....
A does not have a no-arg default constructor.
this problem is related to the following location:
.....
Please advise on what appropriate annotations should be added to the Test
class to make this work with binding.ws. FYI, using Tuscany 1.4 release.
Thanks.