Я хотел бы предоставить интерфейс через веб-службу. Вместо «представления интерфейса» раскрывается фактическая реализация.
Пример:
@XmlRootElement
public interface Foo extends Serializable {
String getId();
}
@XmlRootElement
public class MyFoo implements Foo {
private String id;
private String bar;
// Getter / Setter
}
@GET
@Path("myfoo")
@Produces(MediaType.APPLICATION_XML)
public MyFoo myFoo() {
MyFoo foo = new MyFoo();
foo.setId("myfoo");
foo.setBar("bar");
return foo;
}
Этот метод веб-службы даст ожидаемый результат, например
<myFoo>
<bar>bar</bar>
<id>myfoo</id>
</myFoo>
Проблема возникает, когда я пытаюсь открыть только вид интерфейса:
@GET
@Path("foo")
@Produces(MediaType.APPLICATION_XML)
public Foo foo() {
MyFoo myFoo = new MyFoo();
myFoo.setId("foo");
myFoo.setBar("bar");
Foo foo = myFoo;
return foo;
}
Это даст результат:
<myFoo>
<bar>bar</bar>
<id>foo</id>
</myFoo>
Но я ожидаю такого ответа:
<foo>
<id>foo</id>
</foo>
Как я могу этого добиться?
JsonView
, которая позволяет вам это делать. Пример: http://stackoverflow.com/questions/26775106/jsonview-of-jackson-not-working-with-jax-rs - person Gimby   schedule 08.08.2016