1. core
    1. 核心接口
      1. WebServiceMessage
      2. SoapMessage
  2. OXM
    1. Object XML Mapping
  3. Security
  4. XML
    1. 解析XML用的
  5. WS-Support
    1. JMS
    2. EMail
  6. WebService 介绍
    1. 特性
      1. 对XML的一对支持
      2. 配置简单,类似SpringMVC
      3. 安全性,支持加密
      4. 与SpringSecurity集成
    2. 运行环境
      1. jdk1.6+
      2. spring3.2+
    3. 结构图
    4. 支持的标准
      1. SOAP 1.1 and 1.2
      2. WSDL 1.1 and 2.0
    5. 协议优先
      1. 为啥?
        1. 因为以协议优先就类似于 java中的面向接口编程, 一个规范多种实现,在这体现为 一个协议 多种语言实现
        2. WSDL
          1. 使用 xml 描述WebService 的语言规范
      2. XML转换成对象的问题
        1. XML的表达式 转成 JAVA 可能会丢失 语义
        2. XML 需要兼顾不同的语言规范,Java 中的HashMap .Net中没有
        3. 循环图问题
      3. 性能问题
      4. 说白了就是,不要从代码 逆向到XML ,而是首先定义好XML 再提供代码实现
    6. 从协议开始
      1. XSD文件
        1. 关键标签
          1. <xs:element name="HolidayRequest">
          2. <xs:complexType>
          3. <xs:sequence>
          4. <xs:all>
          5. <xs:element
          6. 顺序
        2. 约束
          1. 数据类型限制
          2. type="xs:date"
          3. type="xs:integer"
          4. type="xs:string"
      2. WSDL文件
        1. 基于XSD文件生成不需要手写
  7. 快速构建 服务端
    1. 定义XSD文件 用来描述对象
    2. 使用Maven插件 逆向 到domain文件
    3. 核心注解
      1. @EndPoint
      2. @PayloadRoot
        1. namespace
        2. localPart
      3. @RequestPayload
      4. @ResponsePayload
    4. 核心配置
      1. 注解
        1. @EnableWs
        2. @Configuration
      2. 核心bean
        1. XsdSchema
        2. DefaultWsdl11Definition
          1. 将一个 XsdSchema 转换成 一个wsdl 发布出去
          2. 使用的 wsdl1.1 协议
          3. @Bean(name = "countries") 需要指定一个名称
        3. ServletRegistrationBean
          1. MessageDispatcherServlet
          2. 基于SOAP请求的分发器
          3. 需要配置其拦截规则
          4. new ServletRegistrationBean(servlet, "/ws/*");