org.apache.cxf.jaxrs.client.WebClient

get调用

    @GET
@Path("/echo/{input}")
@Produces("text/plain")
public String ping(@PathParam("input") String input) {
return input;
}
    @Test
public void testPing() throws Exception {
WebClient client = WebClient.create(serverUrl + "/c/echo/SierraTangoNevada");
Response r = client.accept("text/plain").get();
assertEquals(Response.Status.OK.getStatusCode(), r.getStatus());
String value = IOUtils.toString((InputStream)r.getEntity());
assertEquals("SierraTangoNevada", value);
}

post调用

    @POST
@Produces("application/json")
@Consumes("application/json")
@Path("/jsonBean")
public Response modifyJson(InputBean input) {
input.setVal2(input.getVal1());
return Response.ok().entity(input).build();
}
    @Test
public void testJsonRoundtrip() throws Exception {
// List<Object> providers = new ArrayList<Object>();
// providers.add(new org.codehaus.jackson.jaxrs.JacksonJsonProvider()); List<org.codehaus.jackson.jaxrs.JacksonJsonProvider> provider = Collections.singletonList(new org.codehaus.jackson.jaxrs.JacksonJsonProvider()); InputBean inputBean = new InputBean();
inputBean.setVal1("Maple");
WebClient client = WebClient.create(serverUrl + "/c/jsonBean", provider);
InputBean jsonBean = client.accept(MediaType.APPLICATION_JSON)
.type(MediaType.APPLICATION_JSON)
.post(inputBean,InputBean.class);
System.out.println(jsonBean.toString());
// assertEquals(Response.Status.OK.getStatusCode(), r.getStatus());
// MappingJsonFactory factory = new MappingJsonFactory();
// JsonParser parser = factory.createJsonParser((InputStream)r.getEntity());
// JsonBean output = parser.readValueAs(JsonBean.class);
// assertEquals("Maple", output.getVal2());
}

create

get

WebClient org.apache.cxf.jaxrs.client.WebClient.create(String baseAddress)

post

WebClient org.apache.cxf.jaxrs.client.WebClient.create(String baseAddress, List<?> providers)

List<Object> providers = new ArrayList<Object>();
providers.add(new org.codehaus.jackson.jaxrs.JacksonJsonProvider());
List<org.codehaus.jackson.jaxrs.JacksonJsonProvider> provider = Collections.singletonList(new org.codehaus.jackson.jaxrs.JacksonJsonProvider());

设置MIME

// Set HTTP Accept header
// Set HTTP Content-Type header
// javax.ws.rs.core.MediaType webClient.accept(MediaType.APPLICATION_JSON).type(MediaType.APPLICATION_JSON);

post

public <T> T post(Object body, Class<T> responseClass)

例如:

JsonBean inputBean = new JsonBean();[...]
JsonBean jsonBean = client.accept(MediaType.APPLICATION_JSON)
  .type(MediaType.APPLICATION_JSON)
  .post(inputBean,JsonBean.class);

cxf-rs client 调用的更多相关文章

  1. WebService 之CXF(rs)之HelloWorld

    1.建立mavenjava项目 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http ...

  2. SOA 下实现分布式 调用 cxf+ webService +动态调用

    近期项目间隙 自学了  webservice   一下 是我写的  一个demo 首先我们在web.xml 里配置如下 <servlet> <servlet-name>CXFS ...

  3. 使用CXF发布和调用webservice之HelloWorld入门

    依赖的JAR     cxf-2.2.10.jar     jetty-6.1.21.jar     jetty-util-6.1.21.jar     servlet-2_5-api.jar     ...

  4. webService总结(一)——使用CXF公布和调用webService(不使用Spring)

    CXF和Axis2是两个比較流行的webService框架,接下来我会写几篇博客简介怎样使用这两种框架. 首先,先简介一下CXF的使用. CXF公布webService有多种方法.这里我介绍三种: 1 ...

  5. go微服务框架kratos学习笔记四(kratos warden-quickstart warden-direct方式client调用)

    目录 go微服务框架kratos学习笔记四(kratos warden-quickstart warden-direct方式client调用) warden direct demo-server gr ...

  6. webservice发布服务:CXF及客户端调用

    2.CXF:(与spring整合) CXF相对来说操作没有AXIS繁琐 1.导入spring的jar包和cxf的jar包 2.在spring的核心配置文件中配置发布的接口类 <?xml vers ...

  7. 使用soapUI代替WSDL2JAVA生成cxf HTTPS 客户端调用代码

    如果直接用cxf下面的wsdl2java生成https服务调用代码,会报https证书的错误.在你不想导入证书的情况下,可以使用soapUI进行客户端代码的生成,步骤如下: 1.设置CXF,如下图: ...

  8. Java - 在WebService中使用Client调用三方的RestAPI

    背景 近期,由于项目的要求需要在自己的webservice中调用远程的WebAPI(Restful format).自己的webservice程序是用Java编码写的,所以需要在其中实现一个Clien ...

  9. Spring整合CXF发布及调用WebService

    这几天终于把webService搞定,下面给大家分享一下发布webService和调用webService的方法 添加jar包 (官方下载地址:http://cxf.apache.org/downlo ...

随机推荐

  1. Qt-状态机

    //以下示例是QT示例中的appchooser例子,使用状态机来进行图标的交互. #include <QtCore> #include <QtWidgets> class Pi ...

  2. html资源 链接

    http://m.aicai.com/index.do?agentId=1&vt=5

  3. too few PGs per OSD (20 < min 30)

    ceph osd pool set replicapool pg_num 150 ceph osd pool set replicapool pgp_num 150

  4. triton,docker,mesos

    triton user: jill /root/.sdc/docker/jill 下 root@1f6af9d8-8ed9-e940-9c6c-d9505ca25896:~/.sdc/docker/j ...

  5. jquery clone 获取文本框值得问题

    1 clone 出来的文本框 默认不会把原来的事件也带过去 如果使用 $("#").clone(true);   true  可以将原来的事件带过去 获取文本框的值 可以使用事件 ...

  6. vs2010+Aspx进行sharepoint2010工作流开发(3) 资料整理

    http://www.cnblogs.com/janet/archive/2010/04/24/1719315.html http://www.cnblogs.com/poissonnotes/arc ...

  7. android显示和隐藏软键盘

    显示键盘: EditText editText.setFocusable(true); editText.setFocusableInTouchMode(true); editText.request ...

  8. 最短路径Dijkstra算法(邻接矩阵)

    Dijkstra算法的原理: 从某个源点到其余各顶点的最短路径,即单源点最短路径(仅适合非负权值图).单源点最短路径是指:给定带权有向图G和源点v,求从v到G中其余各顶点的最短路径.迪杰斯特拉(Dij ...

  9. Unity 5.1+ Assertion Library (断言库)

    Unity 5.1+ ,加入了“断言库”,在 Asset 类中可以方便的找到需要使用断言的函数. UnityEngine.Assertions.Assert.IsNotNull( ) 为何使用断言 使 ...

  10. Intersection(Check)

    Intersection http://poj.org/problem?id=1410 Time Limit: 1000MS   Memory Limit: 10000K Total Submissi ...