RestEasy客户端所需的罐子

时间:2014-10-31 14:51:20

标签: java rest jax-rs resteasy java-ee-7

我需要提供一个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);

2 个答案:

答案 0 :(得分:13)

最简单的方法是使用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。它提供了比你需要的更多,但它将包含你在上面的图片中看到的所有罐子,以及其他一些好东西,如用户指南,示例等。根据上图,只需获得您需要的罐子。确保下载最终版本。解压缩后,所有的jar都应该在lib目录中。

我可能会提到的另一件事是,为了将JSON表示解组到Java类中,您可能还需要resteasy-jackson2-provider。如上所述,您将看到这些工件

enter image description here

同样,这些也包含在下载中。这在大多数情况下都适用,如果您使用JAXB注释(可以返回XML或JSON),因为引入了工件jackson-module-jaxb-annotations,但该工件不支持所有JAXB注释,因此您可能需要如果需要,请提入resteasy-jaxb-provider。就像我说的那样,只有jackson2提供商可能就足够了。但是如果你需要jaxb-prodiver,这就是它的样子

enter image description here

再次,包含在下载

答案 1 :(得分:2)

如果在项目中使用maven,则可以键入dependency:tree以查看依赖项的层次结构。 RestEasy使用的库将列在树中。