2014-10-31 84 views
4

需要罐子我需要提供一個Java REST客戶端,它應該包含在一個包所有必需的罐子。我選擇RestEasy作爲REST框架,因爲服務器應用程序是在JBoss上完成的。爲RestEasy的客戶

到目前爲止,我發現的幾乎所有示例都使用應用程序容器環境,其中提供了這些庫,因此在編譯期間只需要Java EE API,或者使用Maven構建,因此依賴項會自動解析,這可能是好主意和目前的標準方式來做到這一點,但出於項目相關的原因,我需要在lib文件夾中的罐子,並能夠在構建過程中包含可執行jar。

所以我的問題是,這罐子的必要構建一個簡單的客戶端,可以做這樣的事情:

ResteasyClient client = new ResteasyClientBuilder().build(); 
ResteasyWebTarget target = client.target(myURL).queryParam("param", 
       "value"); 
Builder builder = target.request(MediaType.APPLICATION_JSON).header("user", "abc"); 
Invocation invocation = builder.buildGet(); 
MyResponseObject response = invocation.invoke(MyResponseObject .class); 

回答

11

最簡單的方法是使用Maven。我這樣說的原因是,你想要的主要神器是resteasy-client神器,但是這個神器對其他神器有依賴性。如果我創建一個新的Maven項目,只添加這種依賴性

<dependency> 
    <groupId>org.jboss.resteasy</groupId> 
    <artifactId>resteasy-client</artifactId> 
    <version>3.0.9.Final</version> 
</dependency> 

該項目將在所有這些文物

enter image description here

但是,如果你不使用Maven,你可以下載整個RestEasy的拉包here。它比你需要的要多得多,但它會包含你在上面圖片中看到的所有罐子,以及一些其他的好東西,比如用戶指南,例子等等。根據上面的圖片,只需拿到你需要的罐子。確保你下載最終版本。當你解壓縮它時,所有的罐子應該在lib dir中。

我可能會提到另一件事是,爲了解組JSON表示到您的Java類,您可能還需要resteasy-jackson2-provider。做好上面一樣,你會看到這些拉在文物

enter image description here

同樣,這些也包括在下載。這將在大多數情況下,如果你使用JAXB批註(可以返回XML或JSON),因爲在神器jackson-module-jaxb-annotations的拉昇,但神器並不支持所有JAXB註釋,所以你可能需要在resteasy-jaxb-provider拉, 如果需要的話。再次像我說的,傑克遜2提供商可能就足夠了。但在情況下,你需要JAXB的prodiver,這裏是什麼樣子

enter image description here

此外,包括在下載

+0

優秀的答案! – 2014-10-31 16:20:32

+0

這兩個依賴關係都是必需的。 Jackson2提供者依賴也解決了郵件正文錯誤。這篇文章是一個定時器保護程序 – webjockey 2016-05-07 02:46:55

+0

您的resteasy-jackson2-provider鏈接指向resteasy-jackson-provider – 2017-07-26 11:40:08

2

如果你在項目中使用Maven的時候,你可以鍵入dependency:tree看到你的依賴的層次。 RestEasy使用的庫將在樹中列出。

+0

這是正確的。他也可以使用maven-assembly-plugin並生成包 – mendieta 2014-10-31 15:40:53