webservice07#契约优先#webservice实现简单的动态web项目
1, 用户管理 User{username,password,nickname} 属性.
2,契约优先[ 先用schema做标准来写wsdl、再生成服务器端的接口,再编写接口的类]
在src下创建目录 META-INF/wsdl/, 创建一个文件 user.xsd的shema文件
<?xml version="1.0" encoding="UTF-8"?> <!-- 1,写schema时,我们一般都会加上一个 xsd 的命名空间 2,我们都会使用我们自己的命名空间,而不用自动生成的http://www.example.org/user --> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://webservice.yangw.com/user/" xmlns:tns="http://webservice.yangw.com/user/" elementFormDefault="qualified"> <!-- 定义若干个要使用的方法 --> <xsd:element name="add" type="tns:add" /> <xsd:element name="addResponse" type="tns:addResponse" /> <xsd:element name="delete" type="tns:delete" /> <xsd:element name="deleteResponse" type="tns:deleteResponse" /> <xsd:element name="login" type="tns:login" /> <xsd:element name="loginResponse" type="tns:loginResponse" /> <xsd:element name="list" type="tns:list" /> <xsd:element name="listResponse" type="tns:listResponse" /> <!-- 定义类型 --> <xsd:complexType name="add"> <xsd:sequence> <xsd:element name="user" type="tns:user"></xsd:element> </xsd:sequence> </xsd:complexType> <xsd:complexType name="addResponse"></xsd:complexType> <xsd:complexType name="delete"> <xsd:sequence> <xsd:element name="username" type="xsd:string" /> </xsd:sequence> </xsd:complexType> <xsd:complexType name="deleteResponse"></xsd:complexType> <xsd:complexType name="login"> <xsd:sequence> <xsd:element name="username" type="xsd:string" /> <xsd:element name="password" type="xsd:string" /> </xsd:sequence> </xsd:complexType> <xsd:complexType name="loginResponse"> <xsd:sequence> <xsd:element name="user" type="tns:user"></xsd:element> </xsd:sequence> </xsd:complexType> <xsd:complexType name="list"> </xsd:complexType> <xsd:complexType name="listResponse"> <xsd:sequence minOccurs="1" maxOccurs="unbounded"> <xsd:element name="user" type="tns:user"></xsd:element> </xsd:sequence> </xsd:complexType> <xsd:complexType name="user"> <xsd:sequence> <!-- 这里没有作字段的限定 --> <xsd:element name="username" type="xsd:string" /> <xsd:element name="password" type="xsd:string" /> <xsd:element name="nickname" type="xsd:string" /> </xsd:sequence> </xsd:complexType> </xsd:schema>
在 META-INF/wsdl/下创建一个文件 user.wsdl的wsdl文件
File-->New-->Other...-->Web Webservices-->WSDL File (新建过程中,只需要将targetNamespace 设置为与schema保持一致)
<?xml version="1.0" encoding="UTF-8"?> <!-- 1,写schema时,我们一般都会加上一个 xsd 的命名空间 2,我们都会使用我们自己的命名空间,而不用自动生成的http://www.example.org/user --> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://webservice.yangw.com/user/" xmlns:tns="http://webservice.yangw.com/user/" elementFormDefault="qualified"> <!-- 定义若干个要使用的方法 --> <xsd:element name="add" type="tns:add" /> <xsd:element name="addResponse" type="tns:addResponse" /> <xsd:element name="delete" type="tns:delete" /> <xsd:element name="deleteResponse" type="tns:deleteResponse" /> <xsd:element name="login" type="tns:login" /> <xsd:element name="loginResponse" type="tns:loginResponse" /> <xsd:element name="list" type="tns:list" /> <xsd:element name="listResponse" type="tns:listResponse" /> <!-- 定义类型 --> <xsd:complexType name="add"> <xsd:sequence> <xsd:element name="user" type="tns:user"></xsd:element> </xsd:sequence> </xsd:complexType> <xsd:complexType name="addResponse"> <xsd:sequence></xsd:sequence> </xsd:complexType> <xsd:complexType name="delete"> <xsd:sequence> <xsd:element name="username" type="xsd:string" /> </xsd:sequence> </xsd:complexType> <xsd:complexType name="deleteResponse"> <xsd:sequence></xsd:sequence> </xsd:complexType> <xsd:complexType name="login"> <xsd:sequence> <xsd:element name="username" type="xsd:string" /> <xsd:element name="password" type="xsd:string" /> </xsd:sequence> </xsd:complexType> <xsd:complexType name="loginResponse"> <xsd:sequence> <xsd:element name="user" type="tns:user"></xsd:element> </xsd:sequence> </xsd:complexType> <xsd:complexType name="list"> <xsd:sequence></xsd:sequence> </xsd:complexType> <xsd:complexType name="listResponse"> <xsd:sequence minOccurs="1" maxOccurs="unbounded"> <xsd:element name="user" type="tns:user"></xsd:element> </xsd:sequence> </xsd:complexType> <xsd:complexType name="user"> <xsd:sequence> <!-- 这里没有作字段的限定 --> <xsd:element name="username" type="xsd:string" /> <xsd:element name="password" type="xsd:string" /> <xsd:element name="nickname" type="xsd:string" /> </xsd:sequence> </xsd:complexType> </xsd:schema>
打开cmd 使用 wsimport命令 生成java类并复制到项目中.
----------- 赠人玫瑰,手有余香 如果本文对您有所帮助,动动手指扫一扫哟 么么哒 -----------
未经作者 https://www.cnblogs.com/xin1006/ 梦相随1006 同意,不得擅自转载本文,否则后果自负