文档章节

WebService学习(二)——Apache CXF

灯下草虫鸣_
 灯下草虫鸣_
发布于 2017/09/11 17:17
字数 493
阅读 17
收藏 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服务器端的接口。

© 著作权归作者所有

共有 人打赏支持
灯下草虫鸣_
粉丝 2
博文 147
码字总数 40136
作品 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
根据wsdl 文件 用soapUi 快速创建webService 服务创建(图文并茂)

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

hlevel
2014/06/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

IDE 插件新版本发布,开发效率 “biu” 起来了

近日,Cloud Toolkit正式推出了面向 IntelliJ 和 Eclipse 两个平台的新款插件,本文挑选了其中三个重大特性进行解读,点击文末官网跳转链接,可查看详细的版本说明。 本地应用一键部署到任何...

阿里云官方博客
27分钟前
1
0
我是怎样和Linux系统结缘并通过红帽RHCE认证的

我高考完当时就是选择的计算机科学与技术专业,上大学以后联想到的和计算机相关的就只有写代码,开发,网站,网页设计,就没有其他的了,当时学习写代码也都是在Windows上,什么C#、C++之类的...

linuxprobe16
29分钟前
0
0
Coding and Paper Letter(四十四)

资源整理。 1 Coding: 1.Rstudio2019年会“机器学习应用”的幻灯片,代码和数据 rstudio conf 2019 2.R语言包sparkxgb,Spark上XGBoost的R接口。 sparkxgb 3.自动SQL注入和数据库接管工具。 ...

胖胖雕
今天
3
0
Ubuntu最新的主要操作系统放弃32位支持?

现在是2018年,2019年即将到来——64位处理器已经成为主流很长一段时间了。如果你仍然使用32位的电脑,那么是时候把它扔进垃圾箱了。 我为所有基于Linux的操作系统维护者感到自豪,他们有勇气...

Linux就该这么学
今天
2
0
Fundebug发布Vue插件,简化BUG监控接入代码

摘要: 代码越短越好! 我们发布了fundebug-vue插件,可以简化Vue框架接入Fundebug的代码。 Vue如何接入Fundebug 1. 安装fundebug-javascript与fundebug-vue npm install fundebug-javascrip...

Fundebug
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部