Java 有没有一种方法可以在接口引用实现中使用不带JAX-WS注释的RESTful服务接口?

Java 有没有一种方法可以在接口引用实现中使用不带JAX-WS注释的RESTful服务接口?,java,gwt,rest,jaxb,jersey,Java,Gwt,Rest,Jaxb,Jersey,我喜欢Jersey,我真的喜欢,但我宁愿使用接口作为我的资源的返回类型,而不是具体的类。我按照这里的指示: 它展示了如何使用适配器为实现接口的类注释接口,以便JAXB能够绑定到它们 从页面: @XmlJavaTypeAdapter(AbstractFooImpl.Adapter.class) interface IFoo { ... } abstract class AbstractFooImpl implements IFoo { ... static class Adapt

我喜欢Jersey,我真的喜欢,但我宁愿使用接口作为我的资源的返回类型,而不是具体的类。我按照这里的指示:

它展示了如何使用适配器为实现接口的类注释接口,以便JAXB能够绑定到它们

从页面:

@XmlJavaTypeAdapter(AbstractFooImpl.Adapter.class)
interface IFoo {
  ...
}

abstract class AbstractFooImpl implements IFoo {
  ...

  static class Adapter extends XmlAdapter<AbstractFooImpl,IFoo> {
     IFoo unmarshal(AbstractFooImpl v) { return v; }
     AbstractFooImpl marshal(IFoo v) { return (AbstractFooImpl)v; }
  } 
}
@XmlJavaTypeAdapter(AbstractFooImpl.Adapter.class)
接口IFoo{
...
}
抽象类AbstractFooImpl实现IFoo{
...
静态类适配器扩展了XmlAdapter{
IFoo unmarshal(AbstractFooImpl v){return v;}
AbstractFooImpl封送(IFoo v){return(AbstractFooImpl)v;}
} 
}
我不太喜欢知道是什么实现它的接口,这看起来有点难看。我们的代码使用一个带有工厂的DAO模式来抽象出我们正在使用的数据库,以便我们可以在以后需要时交换它。这种周期性的依赖似乎会在以后引起问题

我也对不能与即将使用这些web服务的GWT客户端一起使用这些接口感到不高兴。由于注释来自javax.xml.bind,因此它与GWT编译器不兼容。我当前的解决方法是一个带有注释的特殊服务端接口

那么,有没有更好的方法?也许使用提供者来实例化这些类?或者某种类型的过滤器可以将接口映射到能够提供实现的某种类型的工厂

任何帮助都将不胜感激

谢谢。

提供对映射接口的支持(我是技术负责人):

MOXy可轻松搭配运动衫使用: