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类并复制到项目中.
webservice07#契约优先#webservice实现简单的动态web项目的更多相关文章
- 简单的文件上传的下载(动态web项目)
1.在页面中定义一个form表单,如下: <!-- 文件上传 --> <form action="${pageContext.request.contextPath}/Fi ...
- 用简单的反射优化代码(动态web项目)
在动态web项目中,没有使用框架时,只是简单的jsp访问servlet实现增删改查, 无论是哪个方法都需要经过Servlet中的doGet()方法或doPost()方法,我们可以在链接中附带参数进行区 ...
- springmvc 项目完整示例02 项目创建-eclipse创建动态web项目 配置文件 junit单元测试
包结构 所需要的jar包直接拷贝到lib目录下 然后选定 build path 之后开始写项目代码 配置文件 ApplicationContext.xml <?xml version=" ...
- 创建一个动态Web项目:
开始你的Eclipse,然后进入“文件”>“新建”>“动态Web项目,然后输入项目名称为HelloWorldStruts2和设置其他的选项,在下面的屏幕: 选择在屏幕上的所有默认选项,最后 ...
- 搭建Dynamic Web Project(动态web项目)的springmvc工程2
本文转载自:http://blog.csdn.net/typa01_kk/article/details/45905129 此篇为“创建Dynamic Web Projec工程,”搭建Dynamic ...
- 搭建Dynamic Web Project(动态web项目)的springmvc工程1
本文转载自:http://blog.csdn.net/typa01_kk/article/details/45902955 此篇创建Dynamic Web Projec工程(动态web项目),下一篇, ...
- IDEA创建动态Web项目
1.IDEA创建动态Web项目 1.1.使用IDEA创建动态Web项目,选择Java Enterprise,记得选择服务器,我这里使用的时tomcat 1.2记得勾选Web Application,其 ...
- Velocity笔记--使用Velocity获取动态Web项目名的问题
以前使用jsp开发的时候,可以通过request很轻松的获取到根项目名,现在换到使用velocity渲染视图,因为已经不依赖servlet,request等一些类的环境,而Web项目的根项目名又不是写 ...
- 只需2分钟,简单构建velocity web项目
Velocity是一个基于java的模板引擎(template engine).它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象 velocity ...
随机推荐
- Linux环境下安装禅道
1.下载禅道包 http://dl.cnezsoft.com/zentao/7.3/ZenTaoPMS.7.3.stable.zbox_64.tar.gz http://dl.cnezsoft.c ...
- HTK语音识别示例(Ubuntu)
一.简介 HTK(Hidden Markov Model Toolkit)是一款语音识别工具包,诞生于Cambridge University Engineering Department (CUED ...
- Hibernate 马士兵 学习笔记 (转)
目录(?)[+] 第2课 Hibernate UML图 第3课 风格 第4课 资源 第5课 环境准备 第6课 第一个示例Hibernate HelloWorld 第7课 建立Annotation版本的 ...
- mybatis 的逆向工程
1 逆向工程 1.1 什么是逆向工程 mybaits需要程序员自己编写sql语句,mybatis官方提供逆向工程 可以针对单表自动生成mybatis执行所需要的代码(mapper.Java ...
- C#学习——简介(第一天)
一.控制台输出 在控制台输出: console.writeline(); console.readkey(); 加上后面一句是为了保证弹窗不会一闪而过. 二.注释 1.单行注释: //int a=90 ...
- 怎样给Win7系统设置一个默认的浏览器
怎样给Win7系统设置一个默认的浏览器.. --------------- 点击桌面左下角「windows图标」,再点击「控制面板」,如图: 点击「程序」,如图: 点击「设置默认程序」,如图: 等到「 ...
- flannel 的连通与隔离 - 每天5分钟玩转 Docker 容器技术(61)
上一节我们在 flannel 网络中部署了容器,本节讨论 flannel 的连通和隔离特性. flannel 网络连通性 测试 bbox1 和 bbxo2 的连通性: bbox1 能够 ping 到位 ...
- Android笔记: 日期格式化
下面的转换符来自Java,但是在android中同样可用.(以下表格内容来自互联网.) 常见日期格式化转换符 转换符 说 明 示 例 %te 一个月中的某一天(1-31) 2 %tb 指定语言环 ...
- quartus2中FPGA管脚分配保存方法(转)
一.摘要 将Quartus II中FPGA管脚的分配及保存方法做一个汇总. 二.管脚分配方法 FPGA 的管脚分配,除了在QII软件中,选择“Assignments ->Pin”标签(或者点击按 ...
- 转每天一个linux命令(4):mkdir命令
linux mkdir 命令用来创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录. 1.命令格式: mkdir [选项] 目录... 2.命令 ...