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,如需转载请自行联系原作者








  • 相关阅读:
    Nginx 重定向 伪静态 rewrite index.php
    centos安装lnmp
    spring @RequestBody 和 @RequestParams 同时使用
    idea 设置加载多个资源文件,显示本地图片
    阿里云栖社区dubbo 资源整理
    idea npm 调试报错解决办法
    git 设置了ssh key 还是需要输入账户和密码
    zookeeper系列 (第一章 :ubuntu 下安装zookeeper)
    linux 下node升级
    解决spring http输入流和输出流只能读取一次
  • 原文地址:https://www.cnblogs.com/twodog/p/12138891.html
Copyright © 2011-2022 走看看