cxf和axis2使用有感

本文对比了CXF框架的动态调用接口与AXIS2框架的性能及使用体验。CXF通过DynamicClientFactory避免了wsimport工具的局限性,但首次调用效率较低;AXIS2则解决了效率问题,但在处理自定义对象时需要额外注意。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 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"])

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

 

好吧 看情况而定吧

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值