博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WebService基础学习
阅读量:5760 次
发布时间:2019-06-18

本文共 1899 字,大约阅读时间需要 6 分钟。

hot3.png

 

1,基础术语 

    WSDL:web service definition language 
         对应一种类型的文件.wsdl 
        一个web service对应一个唯一的wsdl文档 
        定义了web service的服务器端与客户端应用交互传递请求和响应数据的格式和方式 
    SOAP:simple object access protocal 
        http+xml(schema)片断 
        soap消息:请求消息和响应消息 
        它依赖于wsdl文档的定义 
    SEI:Service EndPoint Interface 
        web service的终端接口,就是服务器端用来处理请求的接口 
    CXF:Celtix and XFire 

        一个apache的webservice框架

2,代码实现

  ①. 服务器端

    编码:
        a. 创建一个基于jdk6以上版本的java工程
        b. 定义SEI web service Endpoint interface(web service终端接口)
             
            public interface HelloWS {
                @WebMethod
                public String sayHello(String name);
            }
        c. 定义SEI的实现类:
             
            public class HelloWSImpl implements HelloWS {
                @Override
                public String sayHello(String name) {
                    System.out.println("sayHello "+name);
                    return "hello "+name;
                }
            }
    发布:
        public class Server {
            public static void main(String[] args) {
                //客户端发送web service请求的url
                String address = "http://192.168.1.104/ws_server/helloWS";
                //处理请求的SEI对象
                HelloWS helloWS = new HelloWSImpl();
                //发布web service
                Endpoint.publish(address, helloWS);
                System.out.println("发布web service成功!");
            }
        }
②. 客户端
    1. eclipse Web Service浏览器
        a. 查看Web Service所对应的WSDL文档:工程url?wsdl
        b. 使用eclipse访问
            请求体:SOAP Request Envelope
                <soapenv:Envelope>
                    <soapenv:Body>
                        <q0:sayHello>
                            <arg0>tt</arg0>
                        </q0:sayHello>
                    </soapenv:Body>
                </soapenv:Envelope>
            响应体:SOAP Response Envelope
                <S:Envelope>
                    <S:Body>
                        <ns2:sayHelloResponse xmlns:ns2="http://ws.java.atguigu.net/">
                            <return>hello tt</return> 
                        </ns2:sayHelloResponse>
                    </S:Body>
                 </S:Envelope>
    2. 编码实现
        a. 创建客户端java应用
        b. 在应用的src下执行cxf的命令生成客户端代码:
            wsimport -keep http://192.168.1.104/ws_server/helloWS?wsdl
        c. 编写客户端调用的测试代码,执行:
            public class Client {
                public static void main(String[] args) {
                    //创建SEI的工厂对象
                    HelloWSImplService factory = new HelloWSImplService();
                    //得到一个SEI实现类对象
                    HelloWSImpl helloWS = factory.getHelloWSImplPort();
                    //调用SEI的方法,此时才去发送web Service请求,并得到返回结果
                    String result = helloWS.sayHello("Tom");
                    System.out.println(result);
                }
            }

//资料来源于开源的网上,只作整理方便增强自身技能。

转载于:https://my.oschina.net/rightemperor/blog/792649

你可能感兴趣的文章
Mysql find_in_set
查看>>
Citrix Receiver界面显示语言控制
查看>>
探 Spring 3.1之无web.xml式 基于代码配置的servlet3.0应用
查看>>
利用C#开发iPhone程序TMS ASP.NET iPhone Controls Pack
查看>>
页面split效果
查看>>
miniJS-Tip
查看>>
性能接口工具之Jmeter
查看>>
栈 - 顺序存储结构
查看>>
同步和异步的概念?
查看>>
前端技术学习路线及技术汇总
查看>>
HTTP协议-GET/POST请求
查看>>
顶求网首页整体设计思路
查看>>
css实现上下左右布局
查看>>
如何成为一名数据科学家
查看>>
在控制台程序中隐藏控制台窗口!
查看>>
【HDOJ】2782 The Worm Turns
查看>>
深入浅出 JVM GC(1)
查看>>
0204000-fedora关闭selinux
查看>>
数据类型
查看>>
Java基础-SSM之Spring快速入门篇
查看>>