0

假设我们有以下服务接口:

@Path("servicea")
public interface ServiceA {
    @GET void aMethod();
}

@Path("serviceb")
public interface ServiceB {
    @GET void anotherMethod();
}

现在,使用 RestEasy,这些可以使用任何支持的配置轻松公开为 Rest 服务。在这种情况下,我们有一个实现 forServiceA和一个 for 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 中的一个错误?

4

1 回答 1

1

从逻辑上讲,Impl 类在类级别不能有两个@Path注释,并且在一个类中只能有一个GET方法没有@Path. 所以这是不可能的。你可以注释你的界面methods@Path这将是荣幸的。

于 2012-09-19T15:55:31.300 回答