我想設置這是這樣的一個簡單的Web服務(部署在Tomcat)的:Java的RESTful Web服務 - 註解的接口,而不是類
@Path("/api")
public interface Api {
@GET
@Path("categ")
public String getCateg();
}
,我有下面的類實現該接口:
public class RAPI implements API {
public String getCateg() { ... }
}
我的web.xml如下所示:
<servlet>
<servlet-name>API</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>com.api.resources</param-value> <!-- THIS IS CORRECT -->
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>API</servlet-name>
<url-pattern>/api/*</url-pattern>
</servlet-mapping>
但是,當我嘗試在湯姆部署貓我得到以下(而不是預期的錯誤):
com.sun.jersey.api.core.ScanningResourceConfig init
INFO: No provider classes found.
哪個(不復制在這裏,整個跟蹤)告訴我,雖然找到了API接口不能實例化。
我該如何聲明哪些實現類實際上充當REST Web服務?
我不知道,你可以註釋接口與JAX-RS註釋。如果你有多個實現,它會混淆容器。你爲什麼要註解界面? –
沒有特別的原因。我只是在試驗。我真的不知道這是不是一個好主意。 – gpol
註解接口的一個很好的理由是共享其餘服務器和其他客戶端之間的接口。這使得在許多jax-rs實現中開發客戶端幾乎是微不足道的(遠程代理)。我面臨同樣的問題。 –