zoukankan      html  css  js  c++  java
  • 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 同意,不得擅自转载本文,否则后果自负
  • 相关阅读:
    最新seo优化技巧
    5ucms 调用当前文章的评论,以及评论列表
    5ucms的评论列表该怎么写
    Data Structure Binary Tree: Check for Children Sum Property in a Binary Tree
    Data Structure Binary Tree: Level order traversal in spiral form
    Data Structure Binary Search Tree: Inorder Successor in Binary Search Tree
    Algorithm: bit manipulation
    Algorithm: pattern searching
    Algorithm: dynamic programming
    Algorithm: inversion
  • 原文地址:https://www.cnblogs.com/xin1006/p/5673824.html
Copyright © 2011-2022 走看看