• Web Service 开发系列文章之二(一些SOAP相关的内容)


    Web Service 学习第二期

    1、对SOAP的观察和理解

    1.1、使用Eclipse的Web Service Explorer

    选择JavaEE视图 ,如果没有则选择:windowàOpen Perspective à Other

     

    点击 和左边的

    输入服务的URL

    点击go

    点击add 输入参数

    下面显示soap消息

    1.2、基于SOAP的通信方式和基于JAX-WS的通信方式

    1.2.1、初步区别

    基于JAX-WS

    JAX-WS封装了SOAP Java的API自动将Java代码转换成了SOAP消息然后将SOAP请求消息发送个服务器。Java将要通信的对象自动转化成消息了。

    基于SOAP的

    其实也可以直接写一个消息发送给服务器(下面红框中的消息)

    1.2.2、实施

    新建Java项目 新建包

    (1) 创建服务接口

    package org.decarl.soap.service;

    import javax.jws.WebParam;

    import javax.jws.WebResult;

    import javax.jws.WebService;

    @WebService(targetNamespace="http://decarl.soap.org/webservice")

    public interface IMyService {

        @WebResult(name="addResult")

        public int add(@WebParam(name="a") int a,

                 @WebParam(name="b") int b);

    }

    注意:一个很重要的问题

    此服务发布后的WSDL的targetNamespace依旧是根据包生成的命名空间 targetNamespace=http://service.soap.decarl.org/

    当@WebService(targetNamespace="http://decarl.soap.org/webservice")中指定的targetNamespace与包名不同时会将WSDL分成两个

    在上图中的红框下面一句就是导入的自己在@WebService(targetNamespace="http://decarl.soap.org/webservice")

    中指定的命名空间

    (2) 创建服务接口实现类

    package org.decarl.soap.service;

    import javax.jws.WebService;

    //指明服务端接口是谁

    @WebService(endpointInterface="org.decarl.soap.service.IMyService")

    public class MyServiceImpl implements IMyService {

        @Override

        public int add(int a, int b) {

            System.out.println("a + b = " + (a + b));

            return a + b;

        }

    }

    (3) 创建服务类

    package org.decarl.soap.service;

    import javax.xml.ws.Endpoint;

    public class MyServer {

        public static void main(String[] args) {

            Endpoint.publish("http://localhost:8989/ms", new MyServiceImpl());

        }

    }

    1.2.3、SOAP结构

  • 相关阅读:
    使用JS实现图片轮播滚动跑马灯效果
    特殊字符和注释标签
    html常用标签总结
    html重点标签总结
    web常用开发工具
    标签分类和关系
    Web标准和骨架
    常用开浏览器内核
    常用浏览器介绍
    2019/08/20记
  • 原文地址:https://www.cnblogs.com/decarl/p/2503652.html
Copyright © 2020-2023  润新知