0
比方說,我們有以下服務接口:如何從一個單身暴露多個接口RestEasy的
@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個實施起來,一個類下:
public class ServiceImpl implements ServiceA, ServiceB {
...
}
Registry registry = (Registry) servletContext.getAttribute("org.jboss.resteasy.spi.Registry");
registry.addSingletonResource(serviceImpl);
我希望,當我註冊這個類RestEasy的的目的是揭露兩條路徑,但它似乎像它只公開其中一個。有沒有辦法做到這一點?或者這是RestEasy中的一個錯誤?
這個類沒有任何'@ Path'註解,它們在接口上......當解析'@Path'使用時,RestEasy檢查一個類的接口,並在找到一個接口時停止,沒有什麼能阻止它使用所有具有'@ Path'的接口。對於'GET'問題,它仍然是一樣的:你可以推斷出因爲接口上的@ @ Path註解而調用哪個方法,並且這些方法在接口中聲明,並且使用全部可能檢查的反射。儘管如此,即使這些方法是用'@Path'聲明的,它也不起作用。 –