Java 在不特定于实现的情况下使用JAX-RS

Java 在不特定于实现的情况下使用JAX-RS,java,jax-rs,Java,Jax Rs,我有一个服务,我想在几个项目中以基本相同的方式使用它。我想简化向这些项目发送和接收数据的过程,因此我想制作一个客户端jar,用于处理打包和解包JAXR响应/请求的过程,并将其包含在我的其他项目中 然而,要使用任何jax-rs对象,我必须依赖于jax-rs的特定实现。在我的小客户端库中,我必须包括jersey(或resteasy或cxf)才能访问任何jax-rs导入。如果我将这个jar包含在我的任何其他项目中,他们也将被迫使用rest实现 有没有一种方法可以创建一个利用jax-rs对象的单一项目j

我有一个服务,我想在几个项目中以基本相同的方式使用它。我想简化向这些项目发送和接收数据的过程,因此我想制作一个客户端jar,用于处理打包和解包JAXR响应/请求的过程,并将其包含在我的其他项目中

然而,要使用任何jax-rs对象,我必须依赖于jax-rs的特定实现。在我的小客户端库中,我必须包括jersey(或resteasy或cxf)才能访问任何jax-rs导入。如果我将这个jar包含在我的任何其他项目中,他们也将被迫使用rest实现

有没有一种方法可以创建一个利用jax-rs对象的单一项目jar,该项目jar将使用消费容器的jax-rs实现,而不是有许多几乎相同的客户机项目,它们只包含不同的jax-rs实现


本质上,我希望我的项目wars包含一个jar,它将处理打包和解包jax-rs rest对象,这些对象使用war项目使用的jax-rs的任何实现。

来自
javax.ws.rs.*
包的类是可移植的,并且可以跨不同的jax-rs实现工作。使用以下依赖项:


javax.ws.rs
详情请参阅

在JAX-RS2.0之前,任何客户机支持都是特定于供应商的,不可移植。大多数供应商提供的基于代理的客户端也不可移植

JAX-RS客户端API的使用方法如下:

Client-Client=ClientBuilder.newClient();
响应=客户端。目标(“http://example.org/hello)请求(“文本/普通”).get();
在上面的代码中,将使用JAX-RS实现提供程序提供的默认实现类创建一个实例


如果您感兴趣,请查看文档中的实现:

  • 泽西岛:

  • RESTEasy:

  • Apache CXF:


  • javax.ws.rs.*
    包中的类是可移植的,可以跨不同的JAX-rs实现工作。使用以下依赖项:

    
    javax.ws.rs
    详情请参阅

    在JAX-RS2.0之前,任何客户机支持都是特定于供应商的,不可移植。大多数供应商提供的基于代理的客户端也不可移植

    JAX-RS客户端API的使用方法如下:

    Client-Client=ClientBuilder.newClient();
    响应=客户端。目标(“http://example.org/hello)请求(“文本/普通”).get();
    
    在上面的代码中,将使用JAX-RS实现提供程序提供的默认实现类创建一个实例


    如果您感兴趣,请查看文档中的实现:

    • 泽西岛:

    • RESTEasy:

    • Apache CXF:


    @PaulSamsotha Nice,这基本上就是实现将使用的jax-rs接口集吗?如果我在客户机中导入,它会知道使用jax rs的导入实现吗?是的,它会知道使用实现的Client@PaulSamsotha很好,这基本上就是实现将使用的jax-rs接口集吗?如果我在客户机中导入它,它会知道使用导入的jax-rs实现吗?是的,它会知道使用实现的客户机