文档章节

WebService学习(二)——Apache CXF

灯下草虫鸣_
 灯下草虫鸣_
发布于 2017/09/11 17:17
字数 493
阅读 16
收藏 0

服务端接口开发

  • 创建maven的JavaSE项目:ws-server
  • 项目JDK需要是1.7以上版本,因为从1.7开始,JDK有WebService的默认实现。
  • 创建服务接口:ServiceDemo
@WebService
public interface ServiceDemo{
 
    public String say(String str);
}
  • 创建服务接口实现类:ServiceDemoImpl
@WebService
public class ServiceDemoImpl implements ServiceDemo{
 
    public String say(String str) {
        return "Hello "+str;
    }
 
}
  • 创建发布服务的主类:Server,可以使用JDK默认实现的EndPoint实现,也可以使用CXF提供的WebService实现。

JDK实现:

public class Server {
 
    public static void main(String[] args) {
        System.out.println("web service start");  
        HelloWorld implementor = new ServiceDemoImpl ();  
        String address = "http://192.168.1.103/serviceDemo";  
        Endpoint.publish(address, implementor);  // JDK实现
        System.out.println("web service started");  
    }
}
  • 使用CXF需要添加的jar:
<dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-core</artifactId>
        <version>3.1.5</version>
    </dependency>
     
    <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-frontend-jaxws</artifactId>
        <version>3.1.5</version>
    </dependency>
     
    <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-transports-http-jetty</artifactId>
        <version>3.1.5</version>
    </dependency>

CXF实现:

public class Server {
 
    public static void main(String[] args) {
        System.out.println("web service start");  
        HelloWorld implementor = new ServiceDemoImpl ();  
        String address = "http://192.168.1.103/serviceDemo";  
        
        JaxWsServerFactoryBean factoryBean = new JaxWsServerFactoryBean();
        factoryBean.setAddress(address); // 设置暴露地址
        factoryBean.setServiceClass(HelloWorld.class); // 接口类
        factoryBean.setServiceBean(implementor); // 设置实现类
        factoryBean.create();      
        System.out.println("web service started");  
    1}
}
  • 运行主类,发布服务:运行S1erver类
  • 在浏览器中访问服务:在浏览器中输入: address?wsdl

客户端实现

配置CXF

  • 下载CXF
  • 解压到 D:\apache-cxf-3.1.5
  • bin目录下有wsdl2java,wsdl2java.bat,要使用wsdl2java命令,需要配置path。打开环境变量配置,将路径:D:\apache-cxf-3.1.5\bin 加入。

开发webservice客户端

  • 创建一个maven的JavaSE项目:ws-client

  • 找到ws-client项目的本地路径: 输入图片说明

  • 在本地路径下按shift加鼠标右键,打开命令窗口,输入:wsdl2java address?wsdl。其中address是指服务端发布的webservice接口

  • 上一步中需要注意的是:不能把服务器端关闭。

  • 执行完之后,刷新ws-client,客户端的代码就生成了。

  • 关键代码是ServiceDemoService.java

  • 编写客户端主类:Client

public class Client {
 
    public static void main(String[] args) {
        ServiceDemoService service=new ServiceDemoService();
        ServiceDemo serviceDemo=service.getServiceDemoPort();
        System.out.println(serviceDemo.say("penelope"));
    }
}
  • 运行Client,打印出:hello penelope,说明成功调用了webservice服务器端的接口。

© 著作权归作者所有

共有 人打赏支持
灯下草虫鸣_
粉丝 1
博文 124
码字总数 25944
作品 0
杭州
程序员
私信 提问
spring+restful service

Spring整合CXF,发布RSETful 风格WebService 这篇文章是承接之前CXF整合Spring的这个项目示例的延伸,所以有很大一部分都是一样的。关于发布CXF WebServer和Spring整合CXF这里就不再多加赘述...

游宵
2014/04/25
0
1
apache CXF wsdl2java工具的使用

最近,由于要用到某公司提供的webservice实现的api接口,想到了用cxf的wsdl2java工具来生成客户端程序。(自己写是比较麻烦且费时,so偷懒一下、、) 使用步骤如下: 一、下载apache cxf的包...

Yao淡定
2014/02/21
0
0
CXF创建webservice客户端和服务端

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本人声明。否则将追究法律责任。 作者:永恒の☆ 地址:http://blog.csdn.net/chenghui0317/article/details/9...

kt431128
2014/10/03
0
0
webservice客户端调用方式(cxf)

一、环境准备 下载cxf,并在环境变量中进行如下操作: 新建CXF_HOME D:cxfapache-cxf-2.5.2 在PATH中添加 %CXF_HOME%/bin 二、执行命令 打开cmd,运行wsdl2java.bat -client -d [d://] [http...

小米米儿小
2013/08/02
0
0
根据wsdl 文件 用soapUi 快速创建webService 服务创建(图文并茂)

最近公司业务上使用webservice 频繁。由于之前都是自己搭建webservice 自己定义提供给别人服务,现在则相反需求都是根据人家提供的wsdl 文件来生成 我们平台需要提供的接口。刚开始不知道如何...

hlevel
2014/06/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

MariaDB 服务器在 MySQL Workbench 备份数据的时候出错如何解决

服务器是运行在 MariaDB 10.2 上面的,在使用 MySQL Workbench 出现错误: mysqldump: Couldn't execute 'SELECT COLUMN_NAME, JSON_EXTRACT(HISTOGRAM, '$."number-of-buckets-specified"'......

honeymose
今天
3
0
apache顶级项目(二) - B~C

apache顶级项目(二) - B~C https://www.apache.org/ Bahir Apache Bahir provides extensions to multiple distributed analytic platforms, extending their reach with a diversity of s......

晨猫
今天
6
0
day152-2018-11-19-英语流利阅读

“超级食物”竟然是营销噱头? Daniel 2018-11-19 1.今日导读 近几年来,超级食物 superfoods 开始逐渐走红。不难发现,越来越多的轻食餐厅也在不断推出以超级食物为主打食材的健康料理,像是...

飞鱼说编程
今天
14
0
SpringBoot源码:启动过程分析(二)

接着上篇继续分析 SpringBoot 的启动过程。 SpringBoot的版本为:2.1.0 release,最新版本。 一.时序图 一样的,我们先把时序图贴上来,方便理解: 二.源码分析 回顾一下,前面我们分析到了下...

Jacktanger
昨天
4
0
Apache防盗链配置,Directory访问控制,FilesMatch进行访问控制

防盗链配置 通过限制referer来实现防盗链的功能 配置前,使用curl -e 指定referer [root@test-a test-webroot]# curl -e "http://www.test.com/1.html" -x127.0.0.1:80 "www.test.com/1.jpg......

野雪球
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部