假设我们有以下服务接口:
@Path("servicea")
public interface ServiceA {
@GET void aMethod();
}
@Path("serviceb")
public interface ServiceB {
@GET void anotherMethod();
}
现在,使用RestEasy,可以使用任何支持的配置轻松地将这些作为Rest服务公开。在这种情况下,我们有ServiceA
的实现和ServiceB
的实现,我们通过org.jboss.resteasy.spi.Registry
导出,如下所示:
Registry registry = (Registry) servletContext.getAttribute("org.jboss.resteasy.spi.Registry");
registry.addSingletonResource(serviceAimpl);
registry.addSingletonResource(serviceBimpl);
这很好用。但现在,让我们说在一个类下将两个实现组合在一起是有意义的:
public class ServiceImpl implements ServiceA, ServiceB {
...
}
Registry registry = (Registry) servletContext.getAttribute("org.jboss.resteasy.spi.Registry");
registry.addSingletonResource(serviceImpl);
我希望当我将这个类的对象注册到RestEasy以暴露两个路径时,但它似乎只暴露了两个中的一个。有没有办法实现这个目标?或者这是RestEasy中的错误吗?
答案 0 :(得分:0)
逻辑上,Impl类在类级别不能有两个@Path
注释,而在一个类中,只有一个GET
方法没有@Path
。所以这是不可能的。您可以使用methods
对您的界面@Path
进行注释,这将很荣幸。