Fight With Me!!!

导航

cxf和axis2使用有感

  • CXF框架

个人不喜欢使用wsimport工具:

1.考虑到远端的服务接口发生变化,本地的接口还需要重新同步下

2.项目中无端多了些冗余的代码

这样我们选择cxf的动态调用接口吧,使用DynamicClientFactory这个接口,到可以避免上面的问题。但是DynamicClientFactory在首次使用时会生成所有的类,你可以在日志中看到如下:

信息: Created classes: com.wc8.Add, com.wc8.AddResponse, com.wc8.Cat, com.wc8.Customer, com.wc8.FindCustomer, com.wc8.FindCustomerResponse, com.wc8.GetCatsByUser, com.wc8.GetCatsByUserResponse, com.wc8.Minus, com.wc8.MinusResponse, com.wc8.ObjectFactory, com.wc8.ResponseBean, com.wc8.ResponseOrderBean, com.wc8.User, com.wc8.VODAllowOrder, com.wc8.VODAllowOrderResponse

所以首次调用效率一定很低,但是在后面的调用中,效率会提高很多,以下是测试:

 

  • AXIS2框架

为了避免首次的效率问题,我开始研究axis2,结论如下:

1.效率方面不存在首次效率如此低的问题,下面是测试表:

 

2.当返回值中如果是自定义对象的话(先转成json,客户端再反转为object),需要在本地建立和远程对应的对象。如果远程对象发生变化,本地的对象也要发生变化,不然会调用失败,抛出如下错误:

org.codehaus.jackson.map.exc.UnrecognizedPropertyException: Unrecognized field "name" (Class ResponseBeanTk), not marked as ignorable
 at [Source: java.io.StringReader@a6df38e; line: 1, column: 73] (through reference chain: ResponseBeanTk["name"])

 这又是我痛恨的原因。。。

 

好吧 看情况而定吧

 

posted on 2017-03-31 16:15  nickTimer  阅读(325)  评论(0编辑  收藏  举报