WebService 接口调用指南

Java调用WebService教程
本文介绍如何在Eclipse环境中使用Axis2创建Java WebService客户端,包括环境搭建、客户端开发步骤及示例代码。

今天有同事问webservice调用问题,记得以前(2008年)写过一篇文档,刚好可以用来做一个入门指南。

<!--StartFragment-->

客户端开发步骤(java):

本例展示如何在Eclipse 环境下使用Axis2创建WebService客户端。

一、 环境准备(如果你已具备Axis2开发环境,跳过本步骤)

1、 Axis2 API

本例使用的Axis2版本是1.4,请到以下地址下载:
http://apache.mirror.phpchina.com/ws/axis2/1_4/axis2-1.4.1-bin.zip
下载后将压缩包解压缩到任意目录。如果你希望直接使用Axis2 API进行开发,可能会需要这个包。

2、 Axis2 Eclipse 插件( 代码生成和打包工具 )

本例使用的插件版本是1.4,请到以下地址下载:
打包工具:
http://apache.mirror.phpchina.com/ws/axis2/tools/1_4/axis2-eclipse-service-archiver-wizard-1.4.zip
代码生成工具:
http://apache.mirror.phpchina.com/ws/axis2/tools/1_4/axis2-eclipse-codegen-wizard-1.4.zip

其实我们只用到代码生成工具。

3、 安装Axis2 Eclipse插件

(1) 将下载到的 Axis2 的两个插件解压缩到 Eclipse 安装目录下的 plug-in 子目录;

(2) Axis2 API安装目录的/lib目录下,复制backport-util-concurrent-3.1.jargeronimo-stax-api_1.0_spec-1.0.1.jar这两个文件至eclipse安装目录的/plugins/Axis2_Codegen_Wizard/lib目录下,同时要编辑eclipse安装目录的/plugins/Axis2_Codegen_Wizard下的plugin.xml, 将这两个文件添加进去(红色的两项)
<library name="lib/jibx-run-1.1.5.jar">
<export name="*"/>
</library>
<library name="lib/backport-util-concurrent-3.1.jar">
<export name="*"/>
</library>
<library name="lib/geronimo-stax-api_1.0_spec-1.0.1.jar">
<export name="*"/>
</library>
</runtime>

然后启动 Eclipse ,并选择“ File->New->Other ”可以找到下面两个 Wizards
Axis2 Code Generator
Axis2 Service Archiver,表明插件安装成功。

二、开发客户端

<!--StartFragment-->

打开Eclipse,新建java项目,JDK最好选择JDK1.5。

<!--StartFragment-->

1、 选择“Build Classpath à Add Libraries …”,把Axis2 API安装目录 /lib 目录下所有 jar 包添加进来。

<!--StartFragment-->2、新建一个package,例如com.yourcompany.client

3、使用“File à New à Other ”,在选择向导窗口中选择Axis2 Wizard下的Axis2 Code Generator插件。Next

4、选择“Generate java source code from a WSDL file”,Next

5、在WSDL file location中填入WSDL访问地址,例如:http://192.168.0.1/axis2/services/xxx?wsdl。Next。

6、Codegen option选择 default。Next。

7、选择输出路径,点中“Browse and select a project on current eclipse workspace”,然后点击“Browse…”按钮,选择当前项目。FinishCodegen插件生成客户端代理代码完毕

<!--StartFragment--><!--EndFragment--> <!--StartFragment--><!--EndFragment--> <!--StartFragment--><!--EndFragment--> <!--StartFragment--> <!--EndFragment--> <!--StartFragment--> <!--EndFragment-->

<!--StartFragment-->

8、新建测试类,调用WebService 接口方法。实例代码:

<!--StartFragment-->public class OrderServiceClient {
public static void main(String[] args)throws AxisFault{
OrderServiceStub stub = new OrderServiceStub();
//
测试按手机号查找订购信息
OrderServiceStub.GetOrderInfoDFByPhone request = new OrderServiceStub.GetOrderInfoDFByPhone();

request.setPhone("15969000000");
OrderInfoDF[] result=null;
try{
result=stub.getOrderInfoDFByPhone(request).get_return();
}catch(Exception e){
e.printStackTrace();
}
if(result!=null){
for(int i=0;i<result.length;i++){
OrderInfoDF o=result[i];
System.out.println("###################");
System.out.println("
区号:"+o.getAreaid());
System.out.println("
户号:"+o.getCustomerid());
System.out.println("
订购状态:"+o.getLastsendflag());
System.out.println("
最后发送时间:"+o.getLastsendtime());
System.out.println("
订购指令:"+o.getOrderaction());
System.out.println("
订购时间:"+o.getOrdertime());
System.out.println("
手机号:"+o.getPhone());
System.out.println("
姓名:"+o.getUsername());
}
}

}

运行结果如下:

<!--StartFragment-->

###################

区号:0871

户号:30200363

订购状态:0

最后发送时间:2008-12-29 15:39:38

订购指令:DF#30200363#0871

订购时间:2008-07-30 15:07:46

手机号:15969000000

姓名:null

###################

<!--EndFragment-->


<!--EndFragment-->

<!--StartFragment--><!--EndFragment--> <!--EndFragment-->

<!--EndFragment-->
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值