1. 配置tomcat和SOAP引擎
下载axis2-1.4.1-bin.zip和axis2-1.4.1-war.zip,分别解压。
在axis2-1.4.1-war.zip解压出来的文件夹中有一个axis2.war,把它复制到“<tomcat安装目录>/webapps/”目录下,启动Tomcat,即可看到在“<tomcat安装目录>/webapps/”目录下有个axis2的文件夹
在浏览器的地址栏中,输入http://localhost:8080/axis2/,验证axis2安装成功。
2. 简单的Web service程序在Axis2中发布
简单的POJO,代码如下:
public class MyService {
public String getHello()
{
return "hello world";
}
public String getName(String name)
{
return "Hello "+name;
}
public int getPlus(int a, int b)
{
return a+b;
}
}
把编译之后的MyService.class放到
<Tomcat安装目录>/webapps/axis2/WEB-INF/pojo下,浏览器输入http://localhost:8080/axis2/services/listServices,显示已发布的服务。
浏览器地址栏输入:http://localhost:8080/axis2/services/MyService/getHello
可显示相关xml格式的返回内容。
浏览器地址栏输入:
http://localhost:8080/axis2/services/MyService/getName?name=bill
可显示相关xml格式的返回内容。
浏览器地址栏输入:
http://localhost:8080/axis2/services/MyService/getPlus?a=1&b=2
可显示相关xml格式的返回内容。
说明服务发布成功且可访问。
3. 编写程序利用SOAP调用web service
编写MyRPCClient类作为访问的客户端,使用RPC方式(RPCServiceClient)调用WebService,在RPC中指定WebService的URL,指定getHello方法返回值的数据类型的Class对象,并且指定要调用的getHello方法及WSDL文件的命名空间,最后调用RPC的invokeBlocking方法并输出该方法的返回值。
同理,调用getName和getPlus的方法与以上步骤类似。
4. 使用Axis2提供的工具,根据WSDL生成客户端代码,调用该代码访问web service
在系统环境变量中配置AXIS2_HOME的地址,在CMD控制台下输入%AXIS2_HOME%/bin/wsdl2java -uri http://localhost:8080/axis2/services/MyService?wsdl -p client -s -o stub即可在当前路径下生成stub文件夹,其中包括了一个MyServiceStub的类,把这个类复制到项目之中,用wsdl2java编写简化的客户端程序。
MyServiceStub stub = new MyServiceStub();//创造一个服务对象
stub.getHello().get_return();//得到getHello()的返回值
MyServiceStub.GetName gn = new MyServiceStub.GetName();//创造一个封装getName的对象
gn.setName(name);//设置参数
System.out.println( stub.getName(gn).get_return());//输出放回值
遇到的一些问题:
问题1: MyService类中包含一个getService方法,想利用对这个方法的不同重载,使其可以同时使用无输入、一个String输入和两个int输入不同方法,结果在浏览器中访问的时候无法访问。
解决方案:不能用重载来实现发布不同方法的功能,编写三个不同的方法来实现不同的功能,分别为:getHello()输出“hello world”,getName(String name)输出“hello $name”,getPlus(int a,int b)输出两数之和“$a+b”。
问题2:用wsdl2java编译生成stub类后,无法再程序中连接。
解决方案:发现我用的axis2为1.53版本,编译生成的stub类中自动生成的地址是https开头,不能正确连接,换为统一版本(1.41)后,自动生成的地址为http开头,经测试,连接成功。
搬瓦工怎么样?2021年7月最新vps套餐推荐及搬瓦工优惠码整理,搬瓦工优惠码可以在购买的时候获取一些优惠,一般来说力度都在 6% 左右。本文整理一下 2021 年 7 月最新的搬瓦工优惠码,目前折扣力度最大是 6.58%,并且是循环折扣,续费有效,可以一直享受优惠价格续费的。搬瓦工优惠码基本上可能每年才会更新一次,大家可以收藏本文,会保持搬瓦工最新优惠码更新的。点击进入:搬瓦工最新官方网站搬瓦工...
春节期间我们很多朋友都在忙着吃好喝好,当然有时候也会偶然的上网看看。对于我们站长用户来说,基本上需要等到初八之后才会开工,现在有空就看看是否有商家的促销。这里看到来自HMBcloud半月湾服务商有提供两款春节机房方案的VPS主机88折促销活动,分别是来自洛杉矶CN2 GIA和日本CN2的方案。八八折优惠码:CNY-GIA第一、洛杉矶CN2 GIA美国原生IP地址、72小时退款保障、三网回程CN2 ...
EdgeNat 商家在之前也有分享过几次活动,主要提供香港和韩国的VPS主机,分别在沙田和首尔LG机房,服务器均为自营硬件,电信CN2线路,移动联通BGP直连,其中VPS主机基于KVM架构,宿主机采用四路E5处理器、raid10+BBU固态硬盘!最高可以提供500Gbps DDoS防御。这次开年活动中有提供七折优惠的韩国独立服务器,原生IP地址CN2线路。第一、优惠券活动EdgeNat优惠码(限月...