Apache CXF缺少WebClient类?

时间:2017-05-16 08:27:05

标签: java apache jax-rs cxf

我目前正在使用Apache CXF 3.1.11版构建JAX-RS客户端。我一直在网上看一些简单的例子,看起来WebClient类已经丢失了。

请参阅我在网上找到的以下示例代码。

public static void main(String[] args) throws JsonParseException,
             JsonMappingException, IOException {
    WebClient client = WebClient
            .create("http://localhost:8080/",
                    Collections.singletonList(new JacksonJsonProvider()))
            .path("test").accept(MediaType.APPLICATION_JSON_TYPE);
    Message message = client.get(Message.class);
    System.out.println("Message recieved : " + message);
}

我无法在代码中的任何位置找到WebClient类,并使用以下maven依赖项。

  • CXF-RT-前端-JAXWS
  • CXF-RT-传输-HTTP
  • CXF-RT-传输-HTTP-码头

请有人确认我是否遗漏了依赖项,或者是否已从3.1.11版本中删除了WebClient

2 个答案:

答案 0 :(得分:0)

如果您不确定具体的提供程序实现,可以使用 JAX-RS 标准部分的类,它们是duo Client WebTarget 。但是,对于编组问题,当然,您可能仍需要手动配置特定依赖项,或者 Apache CXF 已经提供了它。

    Client client = ClientBuilder.newBuilder().build();
    WebTarget target = client
            .target("http://localhost:8080/");
    Response response = target.request().get();
    Message message = client.readEntity(Message.class);
     /*
     // now.. process the message
     for (Message message : message.get...) {.. }
    */
    response.close(); // close connections.

答案 1 :(得分:0)

你需要添加cxf-rt-frontend- jaxrs 而不是cxf-rt-frontend-jaxws