Axis2 start guide

下载:http://ws.apache.org/axis2/最新版本 axis2-1.6.3-war.zip
axis2
  |--axis-web  [axis的管理页面]
  |--WEB-INF
     |--conf/  [配置文件:axis2.xml]
     |--services
        |--services.list [文本文件]
|--*.aar         [其实是jar格式]
  |--package/*.class
  |--META-INF/service.xml
     |--modules
验证:http://localhost:8080/axis2/services/listServices
      http://localhost:8080/axis2/axis2-admin/


服务端
(1)用POJO形式发布(无需配置)
   只需要将没有包名的class文件拷到 /WEB-INF/pojo/ 下面(如果不存在请新建目录)即可。
   http://localhost:8080/axis2/services/HelloService/sayHello
   http://localhost:8080/axis2/services/HelloService/sayHelloToPerson?name=bill
      <ns:sayHelloToResponse xmlns:ns="http://ws.apache.org/axis2">
<return>hello,bill</return>
      </ns:sayHelloToResponse>
   注:axis2支持热部署,所以无需重启tomcat。(<parameter name="hotdeployment">true</parameter>)
       也可以自定义pojo目录名称:<deployer class="org.apache.axis2.deployment.POJODeployer" directory="pojo" extension=".class"/>
(2)使用services.xml配置文件发布
   将class文件和/MATA/INF打包成 .aar放到/WEB-INF/services目录下即可。
<?xml version="1.0" encoding="UTF-8"?>
<service name="HelloService2">
    <description>
        Web Service例子 
    </description>
    <parameter name="ServiceClass">
        services.axis2.HelloService2
    </parameter>
    <operation name="sayHello">
        <messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
    </operation>
    <operation name="sayHelloTo"> <!--返回值为void-->
        <messageReceiver class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />
    </operation>
</service>


客户端
(1)API调用
    //指定调用WebService的URL
    RPCServiceClient serviceClient = new RPCServiceClient();
    Options options = serviceClient.getOptions();
    EndpointReference target = new EndpointReference(  
            "http://localhost:8080/axis2/services/HelloService");  
    options.setTo(target);
    //指定调用方法及WSDL文件的命名空间  
    QName qname = new QName("http://ws.apache.org/axis2", "sayHelloTo");
    //参数值,无参数使用空数组
    Object[] args = new Object[] {"美女"};
    //返回值的数据类型
    Class[] returnTypes = new Class[] {String.class};
    
    System.out.println(serviceClient.invokeBlocking(qname, args, returnTypes)[0]);
    //如果没有返回值,调用invokeRobust方法:serviceClient.invokeRobust(qname, args);
(2)用wsdl2java命令生成客户端代码
    wsdl2java -uri http://localhost:8080/axis2/services/HelloService?wsdl -s -o stub -p client
    // -o 输出路径, -p 表示package,  当前目录:/stub/src/client/HelloService*
        HelloServiceStub stub = new HelloServiceStub();
        HelloServiceStub.SayHelloTo gg = new HelloServiceStub.SayHelloTo();
        gg.setName("美女");
        System.out.println( stub.sayHello().get_return());
        System.out.println(stub.sayHelloTo(gg).get_return()); 







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值