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

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

    好吧 看情况而定吧

  • 相关阅读:
    使用springboot方式配置监听器
    Socket实现服务端
    Tesseract 部署到centos遇到的坑
    Java 机器学习之K-mean
    Java springboot之Mongodb增删改查
    Vue 跳转
    nginx安装、部署前端、请求转发
    Vue 第十四章 Vue项目部署到tomcat服务器
    Vue 第十三章 watch属性和computed属性使用
    Vue 第十二章 命名视图实现经典布局
  • 原文地址:https://www.cnblogs.com/toSeeMyDream/p/6651951.html
Copyright © 2020-2023  润新知