zoukankan      html  css  js  c++  java
  • 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结构

  • 相关阅读:
    android 选择图片或拍照时旋转了90度问题
    拍照选择图片(Activity底部弹出)
    Dialog 自定义使用1
    Dialog 基本使用
    秒杀主流应用的二维码扫描
    gen already exists but is not a source folder. Convert to a source folder or rename it.
    gen already exists but is not a source folder. Convert to a source folder or rename it.
    Unable to execute dex: Multiple dex files define
    xxxx is not translated in zh-rCN, zh-rTW
    Android Application 对象介绍
  • 原文地址:https://www.cnblogs.com/decarl/p/2503652.html
Copyright © 2011-2022 走看看