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开头,经测试,连接成功。
如果我们熟悉RAKsmart商家促销活动的应该是清楚的,每个月的活动看似基本上一致。但是有一些新品或者每个月还是有一些各自的特点的。比如七月份爆款I3-2120仅30美金、V4新品上市,活动期间5折、洛杉矶+硅谷+香港+日本站群恢复销售、G口不限流量服务器比六月份折扣力度更低。RAKsmart 商家这个月依旧还是以独立服务器和站群服务器为主。当然也包括有部分的低至1.99美元的VPS主机。第一、I...
819云互联是海外领先的互联网业务平台服务提供商。专注为用户提供低价高性能云计算产品,致力于云计算应用的易用性开发,并引导云计算在国内普及。目前平台研发以及运营云服务基础设施服务平台(IaaS),面向全球客户提供基于云计算的IT解决方案与客户服务,拥有丰富的海外资源、香港,日本,美国等各国优质的IDC资源。官方网站:https://www.819yun.com香港特价物理服务器:地区CPU内存带宽...
BlueHost 主机商在以前做外贸网站的时候还是经常会用到的,想必那时候有做外贸网站或者是选择海外主机的时候还是较多会用BlueHost主机商的。只不过这些年云服务器流行且性价比较高,于是大家可选择商家变多,但是BlueHost在外贸主机用户群中可选的还是比较多的。这次年中618活动大促来袭,毕竟BLUEHOST商家目前中文公司设立在上海,等后面有机会也过去看看。他们也会根据我们的国内年中促销发...