今天试验cxf的客户端收发信息测试,之前一直是让服务端直接返回string,然后客户端拿到字符串后进行解析。
这样的代码,网上任意都能找到。可是如果服务端返回的是json类型,客户端该如何解析呢?
网上的代码基本上都是在强调服务端,说应该配置<jaxrs:providers>,却都不提到客户端该如何配置,都是直接调用类似以下代码:
WebClient client = WebClient.create('some url');
client.type('....').accept('....');
Response r = client.get();
Object obj = r.readEntity(Entity.class);
如果按照以上代码进行调用,大部分情况下都会报出这么一个错误:
No message body writer has been found for class XXX.XXX.XXX
解决办法如下:
<<Server端>>
@Produces({MediaType.APPLICATION_JSON_VALUE})
@Path("/{id}")
@GET
public Person getPeople(@PathParam("id") int id) {
return peopleService.getPeople(id);
}
<<Client端>>
//请留意下面红色字体部分,一定要添加这个对应的Provider,也就是与服务端对应
WebClient client = WebClient.create("http://localhost:8080/rest/api/people/4", Arrays.asList(new JacksonJsonProvider()));
client.type(MediaType.APPLICATION_JSON_TYPE).accept(MediaType.APPLICATION_JSON_TYPE);
Response r = client.get();
Object obj = r.readEntity(Person.class);
在WebClient.create方法加上对应的Provider之后,就可以在readEntity时拿到对应的正确的对象了。
相关推荐
NULL 博文链接:https://myten.iteye.com/blog/1225110
客户端和服务端都在,直接可以运行,jar包都有
cxf&spring;&json;&xml;所需要的jar包和实例
发布CXF+Spring整合的REST的服务接口完整实例,其中包括数据库连接池,json数据格式传递数据,HttpURLConne的get和post方式调用接口,以及获取访问者ip地址工具类等众多的技术实例。
cxf框架的webservice,可以完美运行,生成了xml字符串并进行传递以及生成了json对象,然后传递给客户端
ApacheCxf提供Json格式接口服务demo,代码可执行。
本实例工程使用Apache CXF组件快速开发WebService。基于Spring框架,使用了Maven项目,但由于时间原因,只使用了Maven Project的框架,还是使用lib文件夹存放所需的cxf库,传入传出对象支持Json格式。
Web Service Cxf转换器的示例,包含源码和jar包。
Apache CXF配置REST服务,集成到Spring当中。
CXF整合spring,同时支持JSON和XML的CXF配置,支持自动转成实体类,其中的hibernate配置可以不用理会。如果还有不明白可以在留言里留下联系方式,大家可以一起讨论
CXF spring 提供rest服务输出xml或json等格式数据
附件是我平时对一些技术的Demo,包含 Struts2 Hibernate Spring集成,涉及到CXF JSON FreeMarker等技术,SSH2使用的Struts2的零配置。有兴趣的可以下载研究学习。
cxf的具体实现,包括了转换器,和webservice的发布
CXF发布的REST服务返回JSON格式数据,只有服务端代码,没有客户端代码,可以通过http://localhost:9999/roomservice/room、http://localhost:9999/roomservice/room/001来访问测试数据。
07.处理Map等CXF无法自动转换的复合数据类型的形参和返回值
cxf集成Spring的restful WebService接口以Json形式表现的完整代码,适合新入门在学WebService的小伙伴们参考,希望对你们有帮助!
这个是cxf 集成spring 的webservice的例子 供大家参考
webservice cxf spring整合返回list,bean,string,json,xml项目完整实例
这里的Interceptor就和Filter、Struts的Interceptor很类似,提供它的主要作用就是为了很好的降低代码的耦合性,提供...参照网址:http://www.cnblogs.com/hoojo/archive/2011/03/30/1999587.html,cxf入门很不错的哦!