文档章节

WebService学习(二)——Apache CXF

灯下草虫鸣_
 灯下草虫鸣_
发布于 2017/09/11 17:17
字数 493
阅读 14
收藏 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
博文 121
码字总数 25372
作品 0
杭州
程序员
apache CXF wsdl2java工具的使用

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

Yao淡定
2014/02/21
0
0
spring+restful service

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

游宵
2014/04/25
0
1
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
CXF创建webservice客户端和服务端

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

kt431128
2014/10/03
0
0
Cxf 集成spring完整示例

1 CXF概述 1.1 CXF介绍 Apache CXF =Celtix + XFire,Apache CXF 的前身叫 Apache CeltiXfire,现在已经正式更名为 Apache CXF 了,以下简称为 CXF。CXF 继承了 Celtix 和 XFire 两大开源项目...

Zero零_度
2015/08/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

权限框架Shiro学习之表结构设计

权限框架Shiro学习之表结构设计 Shiro是一款优秀的开源安全框架,学习Shiro大家可以参考张开涛老师的博客:跟我学Shiro,当然也可参考我之前的笔记:Shiro实现身份认证、Shiro实现授权。 在学...

TyCoding
33分钟前
1
0
find命令和文件名后缀

9月18日任务 2.23/2.24/2.25 find命令 2.26 文件名后缀 which which 搜索可执行文件,必须在PATH环境变量目录中!!否则无法搜到! [root@centos7 ~]# which lsalias ls='ls --color=auto'...

robertt15
36分钟前
1
0
阿里Java程序员必备的Intellij IDEA 插件

善用Intellij插件可大幅提升我们的效率,以下是我用过不错的Intellij插件,分享给大家希望能帮到大家。 1. .ignore 生成各种ignore文件,一键创建git ignore文件的模板,免得自己去写 2. lom...

我是你大哥
46分钟前
1
0
为什么Java大神,都在看Spring Boot和Spring Cloud的书?

如果你是一名Java开发人员,并且最近正打算学习Spring Boot和Spring Cloud框架并寻找一些关于它们的最好的书籍,那么,你今天就来对地方了。 本文,我们将讨论一些学习Spring Boot和Spring ...

Java小铺
今天
12
0
springboot logback日志配置

springboot 如果不使用外部tomcat的话,日志是需要自己配置的,不然的话就只有控制台的日志,但是日志又是我们在项目上了生产环境,出问题时,检查问题的唯一途径,所以我们要配置详细的日志...

曾大大胖
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部