环境:JAVA_HOME AXIS2_HOME
wsdl2java -uri g:\UserService.wsdl -p com.zzt.ws -d adb -s -ss -sd -ssi -o g:\zzt\server
wsdl2java -uri g:\UserService.wsdl -p com.zzt.ws -d adb -s -o g:\zzt\client
第一个命令生成服务器端代码 第二个命令生成客户端代码
有如下wsdl文件 UserService.wsdl(为方便浏览器的正常显示,去掉了格式)
---------------------------------------------------------------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?><wsdl:definitions name="UserService" targetNamespace="http://ws.zzt.com/" xmlns:ns1="http://cxf.apache.org/bindings/xformat" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://ws.zzt.com/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <wsdl:types> <xsd:schema attributeFormDefault="unqualified" elementFormDefault="unqualified" targetNamespace="http://ws.zzt.com/" xmlns:tns="http://ws.zzt.com/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:complexType name="User"> <xsd:sequence> <xsd:element maxOccurs="1" minOccurs="1" name="username" type="xsd:string"></xsd:element> <xsd:element nillable="true" name="password" type="xsd:string"></xsd:element> <xsd:element nillable="true" name="email" type="xsd:string"></xsd:element> </xsd:sequence> </xsd:complexType> <xsd:element name="loginRequest" type="tns:loginRequest"></xsd:element> <xsd:complexType name="loginRequest"> <xsd:sequence> <xsd:element maxOccurs="1" minOccurs="1" name="username" type="xsd:string"></xsd:element> <xsd:element maxOccurs="1" minOccurs="1" name="password" type="xsd:string"></xsd:element> </xsd:sequence> </xsd:complexType> <xsd:element name="loginResponse" type="tns:loginResponse"></xsd:element> <xsd:complexType name="loginResponse"> <xsd:sequence> <xsd:element maxOccurs="1" minOccurs="1" name="resultCode" type="xsd:string"></xsd:element> <xsd:element nillable="true" name="description" type="xsd:string"></xsd:element> </xsd:sequence> </xsd:complexType> <xsd:element name="addUserRequest" type="tns:addUserRequest"></xsd:element> <xsd:complexType name="addUserRequest"> <xsd:sequence> <xsd:element maxOccurs="1" minOccurs="1" name="User_2" type="tns:User"></xsd:element> </xsd:sequence> </xsd:complexType> <xsd:element name="addUserResponse" type="tns:addUserResponse"></xsd:element> <xsd:complexType name="addUserResponse"> <xsd:sequence> <xsd:element maxOccurs="1" minOccurs="1" name="resultCode" type="xsd:int"></xsd:element> <xsd:element nillable="true" name="description" type="xsd:string"></xsd:element> </xsd:sequence> </xsd:complexType> <xsd:element name="editUserRequest" type="tns:editUserRequest"></xsd:element> <xsd:complexType name="editUserRequest"> <xsd:sequence> <xsd:element nillable="true" name="oldPassword" type="xsd:string"></xsd:element> <xsd:element maxOccurs="1" minOccurs="1" name="User_2" type="tns:User"></xsd:element> </xsd:sequence> </xsd:complexType> <xsd:element name="editUserResponse" type="tns:editUserResponse"></xsd:element> <xsd:complexType name="editUserResponse"> <xsd:sequence> <xsd:element maxOccurs="1" minOccurs="1" name="resultCode" type="xsd:int"></xsd:element> <xsd:element nillable="true" name="description" type="xsd:string"></xsd:element> </xsd:sequence> </xsd:complexType> <xsd:element name="deleteUserRequest" type="tns:deleteUserRequest"></xsd:element> <xsd:complexType name="deleteUserRequest"> <xsd:sequence> <xsd:element maxOccurs="1" minOccurs="1" name="username" type="xsd:string"></xsd:element> </xsd:sequence> </xsd:complexType> <xsd:element name="deleteUserResponse" type="tns:deleteUserResponse"></xsd:element> <xsd:complexType name="deleteUserResponse"> <xsd:sequence> <xsd:element maxOccurs="1" minOccurs="1" name="resultCode" type="xsd:int"></xsd:element> <xsd:element nillable="true" name="description" type="xsd:string"></xsd:element> </xsd:sequence> </xsd:complexType> </xsd:schema> </wsdl:types> <wsdl:message name="loginRequest"> <wsdl:part element="tns:loginRequest" name="parameters"></wsdl:part> </wsdl:message> <wsdl:message name="loginResponse"> <wsdl:part element="tns:loginResponse" name="parameters"></wsdl:part> </wsdl:message> <wsdl:message name="addUserRequest"> <wsdl:part element="tns:addUserRequest" name="parameters"></wsdl:part> </wsdl:message> <wsdl:message name="addUserResponse"> <wsdl:part element="tns:addUserResponse" name="parameters"></wsdl:part> </wsdl:message> <wsdl:message name="editUserRequest"> <wsdl:part element="tns:editUserRequest" name="parameters"></wsdl:part> </wsdl:message> <wsdl:message name="editUserResponse"> <wsdl:part element="tns:editUserResponse" name="parameters"></wsdl:part> </wsdl:message> <wsdl:message name="deleteUserRequest"> <wsdl:part element="tns:deleteUserRequest" name="parameters"></wsdl:part> </wsdl:message> <wsdl:message name="deleteUserResponse"> <wsdl:part element="tns:deleteUserResponse" name="parameters"></wsdl:part> </wsdl:message> <wsdl:portType name="UserInterfaces"> <wsdl:operation name="login"> <wsdl:input message="tns:loginRequest" name="login"></wsdl:input> <wsdl:output message="tns:loginResponse" name="loginResponse"></wsdl:output> </wsdl:operation> <wsdl:operation name="addUser"> <wsdl:input message="tns:addUserRequest" name="addUser"></wsdl:input> <wsdl:output message="tns:addUserResponse" name="addUserResponse"></wsdl:output> </wsdl:operation> <wsdl:operation name="editUser"> <wsdl:input message="tns:editUserRequest" name="editUser"></wsdl:input> <wsdl:output message="tns:editUserResponse" name="editUserResponse"></wsdl:output> </wsdl:operation> <wsdl:operation name="deleteUser"> <wsdl:input message="tns:deleteUserRequest" name="deleteUser"></wsdl:input> <wsdl:output message="tns:deleteUserResponse" name="deleteUserResponse"></wsdl:output> </wsdl:operation> </wsdl:portType> <wsdl:binding name="UserServiceSoapBinding" type="tns:UserInterfaces"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"></soap:binding> <wsdl:operation name="login"> <soap:operation soapAction="" style="document"></soap:operation> <wsdl:input name="login"> <soap:body use="literal"></soap:body> </wsdl:input> <wsdl:output name="loginResponse"> <soap:body use="literal"></soap:body> </wsdl:output> </wsdl:operation> <wsdl:operation name="addUser"> <soap:operation soapAction="" style="document"></soap:operation> <wsdl:input name="addUser"> <soap:body use="literal"></soap:body> </wsdl:input> <wsdl:output name="addUserResponse"> <soap:body use="literal"></soap:body> </wsdl:output> </wsdl:operation> <wsdl:operation name="editUser"> <soap:operation soapAction="" style="document"></soap:operation> <wsdl:input name="editUser"> <soap:body use="literal"></soap:body> </wsdl:input> <wsdl:output name="editUserResponse"> <soap:body use="literal"></soap:body> </wsdl:output> </wsdl:operation> <wsdl:operation name="deleteUser"> <soap:operation soapAction="" style="document"></soap:operation> <wsdl:input name="deleteUser"> <soap:body use="literal"></soap:body> </wsdl:input> <wsdl:output name="deleteUserResponse"> <soap:body use="literal"></soap:body> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="UserService"> <wsdl:port binding="tns:UserServiceSoapBinding" name="UserPort"> <soap:address location="http://localhost:8080/zzt/services/UserService"></soap:address> </wsdl:port> </wsdl:service></wsdl:definitions>
执行以上命令之后,可以看到生成的目录结构,如下:
zzt
|------------client
|------------src (com\zzt\ws\UserServiceStub.java)
|------------build.xml
|------------server
|------------src(com\zzt\ws\....java)
|------------resources
|------------services.xml
|------------UserService.wsdl
附件zzt.rar给出生成的源代码。
分享到:
相关推荐
在日常开发中,通常是由开发团队构建WebService服务端,客户端则通过服务端提供的WS-Definition Language (WSDL) 文件生成客户端代理并进行交互。但有时也会遇到特殊情况,比如与特定企业合作时,对方可能仅提供WSDL...
2. 客户端代码:由wsimport工具自动生成,用于调用服务端的Web服务。可能包含服务代理类、请求参数模型和响应结果模型等。 3. WSDL文件:Web服务描述语言,定义了服务的接口、操作和数据类型,是wsimport生成客户端...
资源包中的生成客户端代码的脚本文件,可能是wsdl2java命令,它能够根据服务的WSDL文档自动生成与服务交互所需的Java客户端代码。 在实践中,开发者可以按照以下步骤操作: 1. 解压资源包,获取Axis 1.4二进制包。 ...
【标题】"C语言整数加法的webservice服务端和客户端代码"涉及的核心知识点是Web服务(Web Service)和gSOAP工具的使用。Web服务是一种通过互联网进行通信的软件系统,它允许不同应用程序之间的数据交换。在这个项目...
- 客户端代码可能包含使用`javax.xml.ws.Service`或CXF的`JAXWSProxyFactoryBean`来生成代理类的代码,以及调用服务端方法的示例。 4. **测试与调试**: - 使用工具如SOAPUI进行服务端接口的测试,可以方便地发送...
标签“wsdl生成代码”进一步明确了这个插件的功能,即根据WSDL文件自动生成相应的服务端和客户端代码。这意味着开发者只需要提供服务的接口定义(即WSDL),插件就能自动生成实现这些接口的代码,这包括服务端的处理...
2. **创建Web服务客户端项目**:在导入WSDL后,Eclipse会提示你创建一个新的Java项目,用于存放生成的客户端代码。输入项目名称并选择目标位置,然后点击“Finish”。 3. **生成源码**:Eclipse会自动生成客户端所...
本文将深入探讨如何利用gSOAP工具根据WSDL文件生成C或C++语言的服务器和客户端代码,以实现Web服务的开发。 1. **WSDL简介**: WSDL文件描述了Web服务的接口,包括服务的位置、提供的操作以及如何调用这些操作。它...
使用Axis2的Eclipse插件,开发人员可以导入一个WSDL文件,然后自动创建与之对应的Java服务实现类和服务部署配置文件,以及客户端的Stub类,使得调用Web服务如同调用本地方法一样简单。 在描述中提到的“基于eclipse...
在Eclipse中,可以通过"New -> Web Service Client"导入WSDL,自动生成客户端代码。 2. 使用客户端代码:现在,你可以通过生成的代理类调用服务端的方法,进行实际的数据交互。在Java代码中,创建代理类的实例,...
WebService服务端及客户端样例工程提供了一个完整的实例,帮助开发者理解如何创建、调用和测试Web服务。服务端主要涉及接口定义、服务发布,而客户端则涉及代理类的生成和调用服务。在实际项目中,还需要关注安全性...
可以通过 SoapServer 的 `setWsdl` 方法指定WSDL文件,或者使用 `setClass` 方法自动创建WSDL。 4. **处理请求**:通过调用 SoapServer 对象的 `handle` 方法,PHP会解析SOAP请求并调用相应的业务逻辑函数。 接下来...
在这个“cxf简单实例 服务端与客户端”中,我们将探讨如何使用CXF来创建服务端和客户端应用。 服务端开发是Web服务的核心部分。在CXF中,服务端通常通过以下步骤建立: 1. 定义服务接口:首先,我们需要定义一个...
从WSDL生成的服务端代码通常包含以下部分:服务接口(Interface)、服务实现(Implementation)、服务部署描述符(Deployment Descriptor, 如wsdd.xml)、以及客户端Stubs和Skeletons。服务接口定义了服务提供的...
- 在此步骤中,您需要选择是生成客户端代码还是服务端代码。 - 如果需要生成客户端代码,请勾选“Generate Client”;如果需要生成服务端代码,则勾选“Generate Server”。 - 可以同时选择生成客户端和服务端...
生成的客户端代码包含了调用远程服务所需的代理类。编译和链接过程也类似,最终生成的客户端程序可以调用服务端提供的方法。 #### 3. 测试与运行 在服务端程序成功运行后,可以使用客户端程序进行测试。通过向...
3. CXF提供了丰富的工具和API,如wsdl2java用于从WSDL生成Java客户端代码,cxf-codegen-plugin用于Maven项目中的代码生成。 五、配置文件 1. `conf`目录可能包含了服务端和客户端的配置文件,如Spring配置文件,...
1. 生成客户端代理类:CXF提供了wsdl2java工具,可以将服务端的WSDL文档转换为Java客户端代码,生成服务代理类和数据模型类。 2. 引入依赖:同样需要引入CXF客户端的相关jar包,如cxf-rt-transports-http等,以支持...
- Axis提供了WSDL2Java工具,可以从WSDL文件生成Java客户端代码。 2. **新建工程项目** - 创建一个新的Java项目,将生成的客户端代码加入到项目中。 3. **调用代码** - 编写调用服务的代码,使用生成的客户端类...