title: JAXB Can't handle interfaces
body: <p>I think this question has been asked like a million times, but none of solutions suggested worked for me. Here is my sample implementation</p>
  
  <pre><code>public class FooImpl2 implements Foo {
      private int a = 100 ;
      private String b = "I am FooImpl2";
      private boolean c;
  
      public int getA() {
          return a;
      }
      public void setA(int a) {
          this.a = a;
      }
      public String getB() {
          return b;
      }
      public void setB(String b) {
          this.b = b;
      }
      public boolean isC() {
          return c;
      }
      public void setC(boolean c) {
          this.c = c;
      }
  
  }
  
  @XmlRootElement
  @XmlSeeAlso({FooImpl1.class, FooImpl2.class})
  public interface Foo {}
  
  public class FooImpl1 implements Foo {    
      private int x;
      private String y ="I am FooImpl1";
      private boolean z;
  
      public int getX() {
          return x;
      }
      public void setX(int x) {
          this.x = x;
      }
      public String getY() {
          return y;
      }
      public void setY(String y) {
          this.y = y;
      }
      public boolean isZ() {
          return z;
      }
      public void setZ(boolean z) {
          this.z = z;
      }        
  }
  
  @XmlRootElement
  public class Response{
  
      private Foo foo;
  
      @XmlElement(type=Object.class)
      public Foo getFoo() {
          return foo;
      }
  
      public void setFoo(Foo foo) {
          this.foo = foo;
      }
  
  }
  
  public class SimpleResource {    
      @Path("foo/{val}") @Produces({"application/json"}) @GET
      public FooAdapter getFoo(@QueryParam("val") int val) {
          FooAdapter ret = new FooAdapter();
          if(val % 2 == 0) {
              ret.setFoo(new FooImpl2());
          } else {
              ret.setFoo(new FooImpl1());
          }
  
          return ret;
      }
  </code></pre>
  
  <p>I always get following exception</p>
  
  <blockquote>
    <p>com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 2 counts of
    IllegalAnnotationExceptions 
    com.abc.objectsToReturn.Foo is an
    interface,</p>
  </blockquote>
  
  <p>can any one help me to figure out right solution </p>