我已經使用服務器和客戶端的RESTeasy。客戶服務股份接口服務器:如何在RESTeasy客戶端中設置路徑參數
public interface Service {
@Path("/start")
@GET
void start();
}
這種服務的實施必然路徑/api
,所以方法start()方法是完整路徑/api/start
上訪問。在客戶端代碼是非常簡單的:
RegisterBuiltin.register(ResteasyProviderFactory.getInstance());
Service service = ProxyFactory.create(Service.class, "http://server/api");
service.start();
但我想有路不區分大小寫的,所以在它的正則表達式我假路徑參數:
public interface Service {
@Path("/{start:[Ss]tart}")
@GET
void start();
}
現在客戶ProxyFactory裏不知道價值替代路徑參數{start}
並且不做任何替換,客戶端以例外You did not supply enough values to fill path parameters
結束。
但是,當我嘗試使用路徑參數作爲方法參數,它的工作原理。
public interface Service {
@Path("/{start:[Ss]tart}")
@GET
void start(@PathParam("start") String param);
}
如何在RESTeasy客戶端中爲假路徑參數指定值?
謝謝。
對於那些誰感興趣的話,現在我使用兩個單獨的接口,用於服務器(使用正則表達式)和客戶端(與普通小寫路徑)。我將它報告爲RESTeasy bug跟蹤器的增強版,我們將看到,https://issues.jboss.org/browse/RESTEASY-634 – mschayna 2011-12-19 13:44:04
更新:我比一年前更換了Jersey REST服務器。澤西支持客戶端完全以另一種方式,所以我不得不面對另一種問題:) – mschayna 2014-02-05 14:14:56