0

次のサービス インターフェイスがあるとします。

@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);

これはうまくいきます。しかしここで、2 つの実装を 1 つのクラスの下にグループ化することが理にかなっているとしましょう。

public class ServiceImpl implements ServiceA, ServiceB {
    ...
}

Registry registry = (Registry) servletContext.getAttribute("org.jboss.resteasy.spi.Registry");
registry.addSingletonResource(serviceImpl);

このクラスのオブジェクトをRestEasyに登録すると、両方のパスが公開されると思いますが、2つのうちの1つだけを公開しているようです。これを達成する方法はありますか?それとも、これは RestEasy のバグですか?

4

1 に答える 1

1

論理的には、Impl クラスは@Pathクラス レベルで 2 つの注釈を持つことはできず、クラス内にGET@Path. したがって、それは不可能です。インターフェイスmethodsに注釈を付けることができ@Path、それは光栄です。

于 2012-09-19T15:55:31.300 に答える