我需要提供一个java REST客户端,它应该包含一个包中所有必需的jar。我选择RestEasy作为REST框架,因为服务器应用程序是在JBoss上完成的。
到目前为止,我发现的几乎所有示例都使用应用程序容器环境,其中提供了这些库,因此在编译期间只需要Java EE API或使用Maven构建,因此依赖项会自动解决,这可能是一个好的想法和目前的标准方法,但由于项目相关的原因,我需要在lib文件夹中的jar,并能够在构建过程中包含并使用可执行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);
答案 0 :(得分:13)
最简单的方法是使用Maven。我这样说的原因是,你想要的主要工件是resteasy-client
工件,但是这个工件依赖于其他工件。如果我创建一个新的Maven项目,只添加此依赖项
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-client</artifactId>
<version>3.0.9.Final</version>
</dependency>
该项目将引入所有这些工件
但是如果你没有使用Maven,你可以下载整个resteasy包here。它提供了比你需要的更多,但它将包含你在上面的图片中看到的所有罐子,以及其他一些好东西,如用户指南,示例等。根据上图,只需获得您需要的罐子。确保下载最终版本。解压缩后,所有的jar都应该在lib
目录中。
我可能会提到的另一件事是,为了将JSON表示解组到Java类中,您可能还需要resteasy-jackson2-provider
。如上所述,您将看到这些工件
同样,这些也包含在下载中。这在大多数情况下都适用,如果您使用JAXB注释(可以返回XML或JSON),因为引入了工件jackson-module-jaxb-annotations
,但该工件不支持所有JAXB注释,因此您可能需要如果需要,请提入resteasy-jaxb-provider
。就像我说的那样,只有jackson2提供商可能就足够了。但是如果你做需要jaxb-prodiver,这就是它的样子
再次,包含在下载
中答案 1 :(得分:2)
如果在项目中使用maven,则可以键入dependency:tree
以查看依赖项的层次结构。 RestEasy使用的库将列在树中。