zoukankan      html  css  js  c++  java
  • 使用CXF开发Web Service服务

    1、使用CXF开发Web Service服务端

    1.1 开发一个Web Service业务接口,该接口要用@WebService修饰

    (1)创建一个Java项目MyServer

    wKiom1PlBUfC3RlPAAJcLKClvY8527.jpg

    (2)在MyServer项目中创建一个接口HelloWorld

    wKiom1PlBZDDXUNMAAGfkb4skIs760.jpg

    1
    2
    3
    4
    5
    6
    package com.xju.ws;
    import javax.jws.WebService;
    @WebService
    public interface HelloWorld {
    String sayHello(String name);
    }


    1.2 开发一个Web Service实现类,实现类也需要用@WebService修饰

    wKioL1PlB8PjrWuVAAJNdUJh04A915.jpg

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    package com.xju.ws.impl;
    import javax.jws.WebService;
    import com.xju.ws.HelloWorld;
    @WebService(endpointInterface = "com.xju.ws.HelloWorld", serviceName = "HelloWorldWs")
    public class HelloWorldWs implements HelloWorld {
    @Override
    public String sayHello(String name) {
    // TODO Auto-generated method stub
    return null;
    }
    }


    1.3 使用Endpoint类的静态方法来发布WebService

    wKioL1PlCe3giuerAAI1hhjTTHQ775.jpg

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    package com.xju.ws.pub;
    import javax.xml.ws.Endpoint;
    import com.xju.ws.HelloWorld;
    import com.xju.ws.impl.HelloWorldWs;
    public class ServerMain {
    public static void main(String[] args) {
    HelloWorld hw=new HelloWorldWs();
    Endpoint.publish("http://127.0.0.1:8080/test", hw);
    System.out.println("发布成功");
    }
    }

    备注:在运行中必须添加CXF2.7运行库。

    wKioL1PlDvnzBA2KAAP9ic6yLr8488.jpg


    2 使用CXF开发Web Service客户端

    2.1 调用CXF提供的wsdl2java工具,根据WSDL文件生成相应的Java代码

    wKioL1PlDIvTYZLXAAJehfQhFjQ549.jpg

    在DOS中进入当前项目的src目录下,如输入下命令:

        wsdl2java -frontend jaxws21 http://127.0.0.1:8080/test?wsdl

    wKioL1Pnk1DQZc7aAAETs1NbIEc815.jpg

        备注:加入参数-frontend jaxws21,为了防止出现CXF自带的javax.xml.service 版本高过jdk的javax.xml.service时报错:构造函数 Service(URL, QName, WebServiceFeature[]未定义。


    2.2 找到wsdl2java所生成类中,一个继承了Service的类,该类的实例当成工厂来使用

    wKioL1PnlI-T17P2AAI1bkwAu3o014.jpg



    2.3 调用Service子类的实例的getXxxPort方法,返回远程WebService代理

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    package com.xju.publish;
    import com.xju.ws.HelloWorld;
    import com.xju.ws.impl.HelloWorldWs;
    public class ClientMain {
    public static void main(String[] args) {
    HelloWorldWs factory=new HelloWorldWs();
    HelloWorld hw=factory.getHelloWorldWsPort();
    System.out.println(hw.sayHello("yyq"));
    }
    }

    运行结果:

    yyq,你好!现在时间是:Sun Aug 10 23:51:39 CST 2014


    备注:此处也可以使用创建Web Service客户端的方法来创建。


         本文转自stock0991 51CTO博客,原文链接:http://blog.51cto.com/qing0991/1537678,如需转载请自行联系原作者








  • 相关阅读:
    HDU 2888 Check Corners (模板题)【二维RMQ】
    POJ 3264 Balanced Lineup(模板题)【RMQ】
    poj 3368 Frequent values(经典)【RMQ】
    SPOJ RPLN (模板题)(ST算法)【RMQ】
    UVA 796 Critical Links(模板题)(无向图求桥)
    UVA 315 Network (模板题)(无向图求割点)
    POJ 2029 Get Many Persimmon Trees (模板题)【二维树状数组】
    poj 3067 Japan 【树状数组】
    POJ 2481 Cows 【树状数组】
    POJ 1195 Mobile phones【二维树状数组】
  • 原文地址:https://www.cnblogs.com/twodog/p/12138892.html
Copyright © 2011-2022 走看看