加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Axis2 start guide

发布时间:2020-12-17 00:54:39 所属栏目:安全 来源:网络整理
导读:下载: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格式] ? |
下载: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());?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读