• axis1.4 websercice服务客户端开发


    1、由于项目要用到axis1.4搭建服务端,而现在都流行axis2,相比是较老的技术了。这几天刚好有时间看看,入门入门。

    2、由于通信双方都是基于soap协议,而soap是基于http传输的。所以先研究研究什么是soap协议,在网上找了很多文档,写的有点乱,选了一个写得比较好。

    WebService_SOAP

    下载地址:http://download.csdn.net/detail/cuker919/5308642

    3、看了soap后,再了解了解wsdl语言。在网上找了很多文档,写的有点乱,选了一个写得比较好。

    Web_Service描述语言_WSDL_详解.pdf

    http://download.csdn.net/detail/cuker919/5308649


    4、前面打好基础之后,接下来就是研究研究axis1.4怎么用了,同样的在网上找找高手写的文档。

    axis_WebService_-_开发指南.docx

    http://download.csdn.net/detail/cuker919/5308603


    5、总结上面的学习,搭建axis1.4服务端

      这事我搭建好运行正常的项目:http://download.csdn.net/detail/cuker919/5308625

     第一步:由于要生成server-config.wsdd,所以要发布自己搭建的项目到tomcat里面部署,再用命令才能生成。

         这里就不能简简单单的搭建java工程了,因为要打包,ant感觉好久不用就忘了,maven好用。

         所以就用maven搭建工程,好发布。

     第二步:搭建好工程后,按axis_WebService_-_开发指南.docx 里面的(二、用wsdd(Web Services Deployment Descriptor)方式发布WebService;编写相应的java类,然后编写对应的deploy.wsdd,请看项目里面的该文件。


     第三步:生成相应的server-config.wsdd

         写完配置后,就需要用axis提供的AdminClient工具类帮我们发布WebService,直到生成server-config.wsdd。-- 用maven打包,然后发布到tomcat/webapp里面,然后在CMD下面输入cd到tomcat/webapp/WEB-INF              

    java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient -lhttp://localhost:8080/myaxis1/services/AdminService deploy.wsdd


     第四步:在WebBrowser的地址栏输入:

    http://localhost:8080/myaxis1/servlet/AxisServlet

    你就可以看到如下效果:

    And now... Some Services

    • HelloWorldWSDD (wsdl)
      • getName
      • getAge
    • AdminService (wsdl)
      • AdminService
    • Version (wsdl)
      • getVersion

    刚才在deploy.wsdd中指定的WebService就在上面出现了,还有暴露出来的方法。点击wsdl就可以看到刚才一样熟悉的wsdl的xml文档。


      第五步:编写复杂类型对象

         按上面的第二步到第四步再走一遍,然后生成server-config.wsdd,用对比工具对比发现,与第一次生成的wsdd文件基本一样,就service多发布一个,然后把这段copy到第一次的server-config.wsdd文件里面即可。

     <service name="ManagerUser" provider="java:RPC">
          <parameter name="allowedMethods" value="*"/>
          <parameter name="scope" value="request"/>
          <parameter name="className" value="com.cuker.service.ManagerUser"/>
          <beanMapping languageSpecificType="java:com.cuker.entity.User" qname="ns1:User" xmlns:ns1="urn:User"/>
     </service>

      第六步:根据已经获取的WSDL文件,使用下面的工具可以生成服务端和客户端,还省了编码,

    工具下载:http://download.csdn.net/detail/cuker919/5349738

    把里面的路径改成自己机子上相对的路径即可。

      生成客户端后,直接放在自己的工程里面,直接就可以调用服务端了:如下代码

    public class Test {

        public static void main(String args[]){
            String url = "http://localhost:8080/myaxis1/services/***Service?wsdl";
            URL serviceUrl;
            try {
                serviceUrl = new URL(url);
                ***ServiceSoapBindingStub    binding = (***ServiceSoapBindingStub) new ***SServiceImplServiceLocator().get***Service(serviceUrl);
            
                UserBean user = new UserBean();
                user.setAreacode("9999");
                user.setCharging("");
                user.setPassword("123456");
                user.setTeam_id(-1);
                user.setUserid("ytest");
                user.setUsertype(1);
                
                OrderBean orderbean = new OrderBean();
                orderbean.setProductid("001");
                OrderBean[] order =new OrderBean[]{orderbean};
                
                
                ResultBean bean = binding.createUser(user, order, "20130408164312");
                
                System.out.println("返回码:" + bean.getReturnCode()+" 返回消息:"+bean.getReturnMessage());
                
            } catch (Exception e) {
                e.printStackTrace();
            }      
        }
    }

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    React 框架 | 深入剖析 Scheduler 原理 广东靓仔
    Spool and Print [转]
    Excel表中的文本格式与数字格式转换方法(转)
    什么叫网关的精解(超经典)(zt)
    如何在公司局域网内部上网使用代理服务器突破网关(zt)
    百鸟之王
    两种修改网卡物理地址的秘笈
    MAC地址作用以及原理(ZT)
    js 通过后台接口返回的URL地址下载文件并保存到本地(已在项目中使用,保存音视频文件)
    DataTable中数据记录的统计
  • 原文地址:https://www.cnblogs.com/cuker919/p/4878532.html
Copyright © 2020-2023  润新知