蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)

http://www.blogjava.net/amigoxie/archive/2011/12/14/303038.html#366367

在上两篇写WebService的文章中:
      1)使用XFire+Spring构建Web Service(一)——helloWorld篇
      2)使用XFire+Spring构建Web Service(二)
      讲到了如何使用XFire+Spring构建WebService,并生成了对应的wsdl文件。针对这两篇文章,收到很多留言和读者来信,大部分都是针对拿到wsdl后,如何根据wsdl生成对应的Java代码,并进行测试。
      基于在开发过程中,很多时候都是拿到另一方的wsdl,需要与该方进行联调测试,所以在本文中,我大概的整理了一下,希望能帮读者解决一些问题。
 第一章. 准备wsdl
      这阵子正好在写几个wsdl,就拿其中一个来做实例吧。
     首先贴下接口协议文档:

1.1 数据类型

AccessCodeContext的数据类型:

类型

Is Null

说明

accessCode

Varchar(32)

N

接入号

vccId

Varchar(20)

Y

集团标识

routeStrategy

Integer 默认1

N

路由策略:

1.转接分机/组;

2.CTI指定路由。

telephoneNumber

Varchar(32)

Y

分机/分机组(当路由策略为1时,该项不能为空)

serviceId

Varchar(20)

Y

服务(当路由策略为2时,该项不能为空)

1.2查询接入号码总数接口

接口定义

接口名称

查询接入号码总数接口

接口描述

查询接入号码总数

1accessCodeContext中的routeStrategy0时,不过滤该项.

接口协议

webservice方式,使用utf-8编码

方法名

getTotalItem

链接地址


接口提供者


主要使用者

ap

wsdl文件


2) 输入参数:

名称

说明

数据类型

is null

accessCodeContext

接入号码属性(当该对象为null时,查询所有的接入号码信息,若某项为空时,该项不参与查询)

AccessCodeContext

n

3) 返回参数

       发生其他异常时ServiceException异常的方式抛出。

名称

说明

数据类型

is null

totalItem

总数

Integer

Y

1.3查询接入号码列表接口

1接口定义

接口名称

查询接入号码列表接口

接口描述

查询接入号码列表

1accessCodeContext中的routeStrategy0时,不过滤该项.

接口协议

webservice方式,使用utf-8编码

方法名

list

链接地址


接口提供者


主要使用者

ap

wsdl文件


2) 输入参数:

名称

说明

数据类型

is null

startItem

起始查询行号

Varchar

Y

maxItem

最大查询行数

Varchar

Y

accessCodeContext

接入号码属性(当该对象为null时,查询所有的接入号码信息,若某项为空时,该项不参与查询)

AccessCodeContext

n

3) 返回参数

       发生其他异常时ServiceException异常的方式抛出。

名称

说明

数据类型

is null

accessCodeContextArray

接入号码信息数组

AccessCodeContext[]

Y

1.4 查询单个接入号码接口

1)接口定义

接口名称

查询接入号码接口

接口描述

查询接入号码信息

接口协议

webservice方式,使用utf-8编码

方法名

find

链接地址


接口提供者


主要使用者

ap

wsdl文件


2) 输入参数:

名称

说明

数据类型

is null

accessCode

接入号码

varchar(32)

n

3) 返回参数

       若接入号码信息不存在或发生其他异常时ServiceException异常的方式抛出。

名称

说明

数据类型

is null

accessCodeContext

接入号码属性

AccessCodeContext

N

1.5 增加接入号码接

1) 接口定义

接口名称

增加接入号码接口

接口描述

增加接入号码,

说明:

1) 接入号码不能重复;

2) 集团信息必须存在。

接口协议

webservice方式,使用utf-8编码

方法名

save

链接地址


接口提供者


主要使用者

ap

wsdl文件


2) 输入参数:

名称

说明

数据类型

is null

accessCodeContext

接入号码信息

AccessCodeContext

n

3) 返回参数

失败时以异常的方式抛出ServiceException。

1.6 修改接入号码接

1) 接口定义

接口名称

修改接入号码接口

接口描述

修改接入号码。

说明:

1) 接入号码必须存在;

2) 集团信息必须存在。

接口协议

webservice方式,使用utf-8编码

方法名

update

链接地址


接口提供者


主要使用者

ap

wsdl文件


2) 输入参数

名称

说明

数据类型

is null

accessCodeContext

接入号码信息

AccessCodeContext

n

3) 返回参数

失败时以异常的方式抛出ServiceException。

1.7 删除接入号码接口

1)接口定义

接口名称

删除接入号码接口

接口描述

删除接入号码:

1)接入号码必须存在。

接口协议

webservice方式,使用utf-8编码

方法名

delete

链接地址


接口提供者


主要使用者

ap

wsdl文件


2) 输入参数:

名称

说明

数据类型

is null

accessCode

接入号码

Varchar(32)

n

3) 返回参数

失败时以异常的方式抛出ServiceException。
第二章 实例wsdl
  相关的wsdl有5个,其中两个是各个接口共用的,定义了共用的异常和数据对象之类的东西。
  1)acd_common_faults.wsdl:定义了共用的异常ServiceException。
    内容如下:
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)<?xml version="1.0" encoding="UTF-8"?>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)
<!-- 编辑使用 XMLSpy v2006 U (http://www.altova.com) 由 any (any) -->
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)
<!-- 2009.10.29 -->
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)
<wsdl:definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:acd_common_faults_xsd="http://cintel.com/ws/acd/system/v1_0/common/model" targetNamespace="http://www.cintel.com.cn/ws/acd/system/v1_0/common/faults" name="common_faults">
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)    
<wsdl:types>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)        
<xsd:schema elementFormDefault="qualified">
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<xsd:import namespace="http://cintel.com/ws/acd/system/v1_0/common/model" schemaLocation="acd_common_types.xsd"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)        
</xsd:schema>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)    
</wsdl:types>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)    
<wsdl:message name="ServiceException">
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)        
<wsdl:part name="ServiceException" element="acd_common_faults_xsd:ServiceException"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)    
</wsdl:message>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)
</wsdl:definitions>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)
  
  2)acd_common_types.xsd:定义了共用的数据类型

  3)acd_accessCode_types.xsd:定义了接入码的数据对象

蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)<?xml version="1.0" encoding="UTF-8"?>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)
<!-- 20090618 -->
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)
<xsd:schema xmlns:acd_common_xsd="http://cintel.com/ws/acd/system/v1_0/common/model" xmlns:acd_accessCode_xsd="http://cintel.com/ws/acd/system/v1_0/accessCode/model" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://cintel.com/ws/acd/system/v1_0/accessCode/model">
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)    
<xsd:element name="AccessCodeContext" type="acd_accessCode_xsd:AccessCodeContext"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)    
<xsd:complexType name="AccessCodeContext">
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)        
<xsd:sequence>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<xsd:element name="accessCode" type="xsd:string" nillable="false"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<xsd:element name="vccId" type="xsd:string" nillable="true"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<xsd:element name="routeStrategy" type="xsd:int" nillable="false"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<xsd:element name="telephoneNumber" type="xsd:string" nillable="true"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<xsd:element name="serviceId" type="xsd:int" nillable="true"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)        
</xsd:sequence>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)    
</xsd:complexType>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)
</xsd:schema>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)
  4)acd_accessCode_service.wsdl:定义了接入码管理的各个方法
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)<?xml version="1.0" encoding="UTF-8"?>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)
<!-- 2009-10-29 -->
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)
<wsdl:definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://cintel.com/ws/acd/system/v1_0/accessCode/service" xmlns:interface="http://cintel.com/ws/acd/system/v1_0/accessCode/interface" targetNamespace="http://cintel.com/ws/acd/system/v1_0/accessCode/service" name="acd_accessCode_service">
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)    
<wsdl:import namespace="http://cintel.com/ws/acd/system/v1_0/accessCode/interface" location="acd_accessCode_interface.wsdl"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)    
<wsdl:binding name="AccessCodeBinding" type="interface:AccessCode">
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)        
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)        
<wsdl:operation name="getTotalItem">
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<soap:operation style="document"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<wsdl:input>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)                
<soap:body use="literal"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
</wsdl:input>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<wsdl:output>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)                
<soap:body use="literal"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
</wsdl:output>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<wsdl:fault name="ServiceException">
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)                
<soap:fault name="ServiceException" use="literal"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
</wsdl:fault>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)        
</wsdl:operation>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)        
<wsdl:operation name="list">
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<soap:operation style="document"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<wsdl:input>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)                
<soap:body use="literal"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
</wsdl:input>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<wsdl:output>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)                
<soap:body use="literal"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
</wsdl:output>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<wsdl:fault name="ServiceException">
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)                
<soap:fault name="ServiceException" use="literal"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
</wsdl:fault>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)        
</wsdl:operation>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)        
<wsdl:operation name="find">
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<soap:operation style="document"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<wsdl:input>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)                
<soap:body use="literal"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
</wsdl:input>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<wsdl:output>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)                
<soap:body use="literal"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
</wsdl:output>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<wsdl:fault name="ServiceException">
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)                
<soap:fault name="ServiceException" use="literal"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
</wsdl:fault>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)        
</wsdl:operation>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)        
<wsdl:operation name="save">
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<soap:operation style="document"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<wsdl:input>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)                
<soap:body use="literal"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
</wsdl:input>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<wsdl:output>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)                
<soap:body use="literal"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
</wsdl:output>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<wsdl:fault name="ServiceException">
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)                
<soap:fault name="ServiceException" use="literal"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
</wsdl:fault>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)        
</wsdl:operation>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)        
<wsdl:operation name="update">
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<soap:operation style="document"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<wsdl:input>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)                
<soap:body use="literal"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
</wsdl:input>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<wsdl:output>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)                
<soap:body use="literal"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
</wsdl:output>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<wsdl:fault name="ServiceException">
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)                
<soap:fault name="ServiceException" use="literal"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
</wsdl:fault>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)        
</wsdl:operation>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)        
<wsdl:operation name="delete">
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<soap:operation style="document"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<wsdl:input>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)                
<soap:body use="literal"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
</wsdl:input>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<wsdl:output>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)                
<soap:body use="literal"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
</wsdl:output>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<wsdl:fault name="ServiceException">
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)                
<soap:fault name="ServiceException" use="literal"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
</wsdl:fault>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)        
</wsdl:operation>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)    
</wsdl:binding>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)    
<wsdl:service name="AcessCodeService">
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)        
<wsdl:port name="AccessCode" binding="tns:AccessCodeBinding">
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<soap:address location="http://localhost:8686/AccessCodeService/services/AccessCode"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)        
</wsdl:port>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)    
</wsdl:service>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)
</wsdl:definitions>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)
  5)acd_accessCode_interface.wsdl:接口定义
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)<?xml version="1.0" encoding="UTF-8"?>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)
<!--2009-10-29 -->
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)
<wsdl:definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:acd_accessCode="http://cintel.com/ws/acd/system/v1_0/accessCode/interface" xmlns:acd_common_xsd="http://cintel.com/ws/acd/system/v1_0/common/model" xmlns:acd_common_faults="http://www.cintel.com.cn/ws/acd/system/v1_0/common/faults" xmlns:acd_accessCode_xsd="http://cintel.com/ws/acd/system/v1_0/accessCode/model" xmlns:acd_accessCode_local_xsd="http://cintel.com/ws/acd/system/v1_0/accessCode/local" targetNamespace="http://cintel.com/ws/acd/system/v1_0/accessCode/interface" name="acd_AccessCode_interface">
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)    
<wsdl:import namespace="http://www.cintel.com.cn/ws/acd/system/v1_0/common/faults" location="acd_common_faults.wsdl"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)    
<wsdl:types>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)        
<xsd:schema elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://cintel.com/ws/acd/system/v1_0/accessCode/local">
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<xsd:import namespace="http://cintel.com/ws/acd/system/v1_0/accessCode/model" schemaLocation="acd_accessCode_types.xsd"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<xsd:import namespace="http://cintel.com/ws/acd/system/v1_0/common/model" schemaLocation="acd_common_types.xsd"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<xsd:element name="getTotalItem" type="acd_accessCode_local_xsd:getTotalItem"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<xsd:complexType name="getTotalItem">
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)                
<xsd:sequence>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)                    
<xsd:element name="accessCodeContext" type="acd_accessCode_xsd:AccessCodeContext"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)                
</xsd:sequence>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
</xsd:complexType>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<xsd:element name="getTotalItemResponse" type="acd_accessCode_local_xsd:getTotalItemResponse"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<xsd:complexType name="getTotalItemResponse">
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)                
<xsd:sequence>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)                    
<xsd:element name="totalItem" type="xsd:int" nillable="false"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)                
</xsd:sequence>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
</xsd:complexType>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<xsd:element name="list" type="acd_accessCode_local_xsd:list"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<xsd:complexType name="list">
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)                
<xsd:sequence>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)                    
<xsd:element name="startItem" type="xsd:int" nillable="false"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)                    
<xsd:element name="maxItem" type="xsd:int" nillable="false"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)                    
<xsd:element name="accessCodeContext" type="acd_accessCode_xsd:AccessCodeContext"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)                
</xsd:sequence>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
</xsd:complexType>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<xsd:element name="listResponse" type="acd_accessCode_local_xsd:listResponse"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<xsd:complexType name="listResponse">
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)                
<xsd:sequence>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)                    
<xsd:element name="accessCodeContextArray" type="acd_accessCode_xsd:AccessCodeContext" nillable="true" minOccurs="0" maxOccurs="unbounded"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)                
</xsd:sequence>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
</xsd:complexType>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<xsd:element name="find" type="acd_accessCode_local_xsd:find"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<xsd:complexType name="find">
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)                
<xsd:sequence>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)                    
<xsd:element name="accessCode" type="xsd:string"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)                
</xsd:sequence>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
</xsd:complexType>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<xsd:element name="findResponse" type="acd_accessCode_local_xsd:findResponse"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<xsd:complexType name="findResponse">
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)                
<xsd:sequence>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)                    
<xsd:element name="accessCodeContext" type="acd_accessCode_xsd:AccessCodeContext"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)                
</xsd:sequence>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
</xsd:complexType>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<xsd:element name="save" type="acd_accessCode_local_xsd:save"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<xsd:complexType name="save">
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)                
<xsd:sequence>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)                    
<xsd:element name="accessCodeContext" type="acd_accessCode_xsd:AccessCodeContext"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)                
</xsd:sequence>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
</xsd:complexType>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<xsd:element name="saveResponse" type="acd_accessCode_local_xsd:saveResponse"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<xsd:complexType name="saveResponse">
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)                
<xsd:sequence>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)                    
<xsd:element name="result" type="xsd:boolean"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)                
</xsd:sequence>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
</xsd:complexType>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<xsd:element name="update" type="acd_accessCode_local_xsd:update"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<xsd:complexType name="update">
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)                
<xsd:sequence>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)                    
<xsd:element name="accessCodeContext" type="acd_accessCode_xsd:AccessCodeContext"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)                
</xsd:sequence>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
</xsd:complexType>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<xsd:element name="updateResponse" type="acd_accessCode_local_xsd:updateResponse"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<xsd:complexType name="updateResponse">
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)                
<xsd:sequence>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)                    
<xsd:element name="result" type="xsd:boolean"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)                
</xsd:sequence>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
</xsd:complexType>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<xsd:element name="delete" type="acd_accessCode_local_xsd:delete"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<xsd:complexType name="delete">
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)                
<xsd:sequence>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)                    
<xsd:element name="accessCode" type="xsd:string"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)                
</xsd:sequence>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
</xsd:complexType>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<xsd:element name="deleteResponse" type="acd_accessCode_local_xsd:deleteResponse"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<xsd:complexType name="deleteResponse">
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)                
<xsd:sequence>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)                    
<xsd:element name="result" type="xsd:boolean"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)                
</xsd:sequence>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
</xsd:complexType>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)        
</xsd:schema>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)    
</wsdl:types>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)    
<wsdl:message name="AccessCode_getTotalItemMessageRequest">
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)        
<wsdl:part name="parameters" element="acd_accessCode_local_xsd:getTotalItem"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)    
</wsdl:message>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)    
<wsdl:message name="AccessCode_getTotalItemMessageResponse">
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)        
<wsdl:part name="result" element="acd_accessCode_local_xsd:getTotalItemResponse"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)    
</wsdl:message>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)    
<wsdl:message name="AccessCode_listMessageRequest">
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)        
<wsdl:part name="parameters" element="acd_accessCode_local_xsd:list"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)    
</wsdl:message>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)    
<wsdl:message name="AccessCode_listMessageResponse">
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)        
<wsdl:part name="result" element="acd_accessCode_local_xsd:listResponse"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)    
</wsdl:message>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)    
<wsdl:message name="AccessCode_findMessageRequest">
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)        
<wsdl:part name="parameters" element="acd_accessCode_local_xsd:find"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)    
</wsdl:message>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)    
<wsdl:message name="AccessCode_findMessageResponse">
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)        
<wsdl:part name="result" element="acd_accessCode_local_xsd:findResponse"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)    
</wsdl:message>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)    
<wsdl:message name="AccessCode_saveMessageRequest">
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)        
<wsdl:part name="parameters" element="acd_accessCode_local_xsd:save"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)    
</wsdl:message>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)    
<wsdl:message name="AccessCode_saveMessageResponse">
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)        
<wsdl:part name="result" element="acd_accessCode_local_xsd:saveResponse"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)    
</wsdl:message>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)    
<wsdl:message name="AccessCode_updateMessageRequest">
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)        
<wsdl:part name="parameters" element="acd_accessCode_local_xsd:update"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)    
</wsdl:message>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)    
<wsdl:message name="AccessCode_updateMessageResponse">
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)        
<wsdl:part name="result" element="acd_accessCode_local_xsd:updateResponse"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)    
</wsdl:message>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)    
<wsdl:message name="AccessCode_deleteMessageRequest">
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)        
<wsdl:part name="parameters" element="acd_accessCode_local_xsd:delete"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)    
</wsdl:message>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)    
<wsdl:message name="AccessCode_deleteMessageResponse">
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)        
<wsdl:part name="result" element="acd_accessCode_local_xsd:deleteResponse"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)    
</wsdl:message>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)    
<wsdl:portType name="AccessCode">
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)        
<wsdl:operation name="getTotalItem">
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<wsdl:input message="acd_accessCode:AccessCode_getTotalItemMessageRequest"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<wsdl:output message="acd_accessCode:AccessCode_getTotalItemMessageResponse"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<wsdl:fault name="ServiceException" message="acd_common_faults:ServiceException"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)        
</wsdl:operation>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)        
<wsdl:operation name="list">
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<wsdl:input message="acd_accessCode:AccessCode_listMessageRequest"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<wsdl:output message="acd_accessCode:AccessCode_listMessageResponse"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<wsdl:fault name="ServiceException" message="acd_common_faults:ServiceException"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)        
</wsdl:operation>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)        
<wsdl:operation name="find">
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<wsdl:input message="acd_accessCode:AccessCode_findMessageRequest"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<wsdl:output message="acd_accessCode:AccessCode_findMessageResponse"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<wsdl:fault name="ServiceException" message="acd_common_faults:ServiceException"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)        
</wsdl:operation>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)        
<wsdl:operation name="save">
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<wsdl:input message="acd_accessCode:AccessCode_saveMessageRequest"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<wsdl:output message="acd_accessCode:AccessCode_saveMessageResponse"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<wsdl:fault name="ServiceException" message="acd_common_faults:ServiceException"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)        
</wsdl:operation>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)        
<wsdl:operation name="update">
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<wsdl:input message="acd_accessCode:AccessCode_updateMessageRequest"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<wsdl:output message="acd_accessCode:AccessCode_updateMessageResponse"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<wsdl:fault name="ServiceException" message="acd_common_faults:ServiceException"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)        
</wsdl:operation>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)        
<wsdl:operation name="delete">
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<wsdl:input message="acd_accessCode:AccessCode_deleteMessageRequest"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<wsdl:output message="acd_accessCode:AccessCode_deleteMessageResponse"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)            
<wsdl:fault name="ServiceException" message="acd_common_faults:ServiceException"/>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)        
</wsdl:operation>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)    
</wsdl:portType>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)
</wsdl:definitions>
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)
第三章 在MyEclispe中通过wsdl生成Java代码
   

3.1   建立工程环境

MyEclipse中建立一个工程,例如建立一个名为wsdl2javaWEB工程。需要添加到WEB-INF/lib目录下的包如下所示:
  蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)

wsdl目录拷贝到工程目录,例如src/wsdl目录下。

3. 2.   根据wsdl文件生成对应的java


选择新建的工程后,点击右键,选择“
Run As->Run”,如下图所示:

蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)
弹出窗口如下图所示:
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)

   在上图中,左边选择“Java Application”后,点击左上角的新增“”按钮new configuration,页面如下图所示:
   蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)

   在上图中,将“Include libraries when searching for a main class 勾上,而后点击“Main class”右边的“Search”按钮,弹出窗口如下图所示:
   蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)

   在上图中输入WSDL2Java后,查找到axis这个jar包中对应类,点击“OK”按钮,此时主窗口如下图所示:
   蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)

   在上图中点击“Arguments”页签,Arguments里把要生成的web service URIwsdl文件写进去,最后点run。在下图中输入的是wsdl文件的路径:     src/wsdl/acd_accessCode_interface.wsdl、src/wsdl/acd_accessCode_service.wsdl

   蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)
   生成的代码的结构如下图所示:
  蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)

第四章 更简便的生成Java代码的方法
    本章讲述的方法是笔者采用的方法,也是笔者所推荐的,原理与前一章相同,但是要简便一些。
4.1 准备jar包
    将上一章提到的6个jar包放到某个目录,例如E:\amigo\project\ws_lib
4.2 拷贝wsdl以及相关文件
    将上面章节5个wsdl文件拷贝到某个目录,例如:E:\interface
4.3 编写一个批处理文件
    编写一个根据wsdl生成Java代码的批处理文件,以后都可以拿来用。在wsdl文件所在目录创建批处理文件createPackageByWsdl.bat,编写该文件内容:
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)set LibPath=E:\amigo\project\ws_lib
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)set AxisClassPath=%LibPath%\axis.jar;%LibPath%\commons-logging.jar;%LibPath%\commons-discovery-0.2.jar;%LibPath%\jaxrpc.jar;%LibPath%\saaj.jar;%LibPath%\wsdl4j.jar;
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)set WSDL2JavaCommand=java -classpath %AxisClassPath% org.apache.axis.wsdl.WSDL2Java
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)set WsDeploy=-s
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)%WSDL2JavaCommand% %WsDeploy% acd_accessCode_interface.wsdl
蜜果私塾:根据wsdl生成对应的Java代码进行接口测试(一)%WSDL2JavaCommand% %WsDeploy% acd_accessCode_service.wsdl
   在后面可加入更多的wsdl文件。
   编写完成后,运行该批处理文件,可在同目录下生成指定的wsdl对应的Java类。生成的文件与上一章的文件一样。
   注意:第一行指定的是jar所在的目录,读者需要进行修改。