一:基本概念(可跳过)

Apache CXF 是一个开放源代码框架,提供了用于方便地构建和开发 Web 服务的可靠基础架构。它允许创建高性能和可扩展的服务,您可以将这样的服务部署在 Tomcat 和基于 Spring 的轻量级容器中,以及部署在更高级的服务器上,例如 Jboss、IBM WebSphere 或 BEA WebLogic。

该框架提供了以下功能:

  • Web 服务标准支持:CXF 支持以下 Web 服务标准:

    • Java API for XML Web Services (JAX-WS)
    • SOAP
    • Web 服务描述语言(Web Services Description Language ,WSDL)
    • 消息传输优化机制(Message Transmission Optimization Mechanism,MTOM)
    • WS-Basic Profile
    • WS-Addressing
    • WS-Policy
    • WS-ReliableMessaging
    • WS-Security
  • 前端建模:CXF 提供了前端建模的概念,允许您使用不同的前端 API 来创建 Web 服务。API 允许您使用简单的工厂 Bean 并通过 JAX-WAS 实现来创建 Web 服务。它还允许您创建动态 Web 服务客户端。
  • 工具支持:CXF 提供了用于在 Java Bean、Web 服务和 WSDL 之间进行转换的不同工具。它提供了对 Maven 和 Ant 集成的支持,并无缝地支持 Spring 集成。
  • RESTful 服务支持:CXF 支持代表性状态传输(Representational State Transfer,RESTful )服务的概念,并支持 Java 平台的 JAX-RS 实现。(本系列的第 2 部分将提供有关 RESTful 服务的更多信息。)
  • 对不同传输和绑定的支持:CXF 支持不同种类的传输,从 XML 到逗号分隔值 (CSV)。除了支持 SOAP 和 HTTP 协议绑定之外,它还支持 Java Architecture for XML Binding (JAXB) 和 AEGIS 数据绑定。
  • 对非 XML 绑定的支持:CXF 支持非 XML 绑定,例如 JavaScript Object Notation (JSON) 和 Common Object Request Broker Architecture (CORBA)。它还支持 Java 业务集成(Java Business Integration,JBI)体系架构和服务组件体系架构(Service Component Architecture,SCA)。
  • code first 或者 xml first  : 支持使用code first 或者 xml first 的方式来创建web服务。

二、代码实例

  需要的包(百度云盘自提):

链接:https://pan.baidu.com/s/1gEYxyhvn_wY0kEK7qZHB_w
提取码:7h7q
复制这段内容后打开百度网盘手机App,操作更方便哦

  代码和上一节基本一致,稍微做一点调整:webservice学习随笔(一):简单的webservice实例

  首相,创建java项目,并导入jar包

  创建接口WebServiceI、实现WebServiceImpl、发布主程序WebServicePublish、客户端CXFClient;

  

package service;

import javax.jws.WebParam;
import javax.jws.WebService; @WebService
public interface WebServiceI { public String sayHello(@WebParam(name="name")String name);
}
package service;
import javax.jws.WebService; @WebService(endpointInterface="service.WebServiceI",serviceName="WebServiceI")
public class WebServiceImpl implements WebServiceI { public String sayHello(String name) {
String returnStr = name + ",你好";
return returnStr;
} }
package service;

import javax.xml.ws.Endpoint;

public class WebServicePublish {

    public static void main(String[] args) {
String address="http://localhost:8989/WS_Server/WebService";
Endpoint.publish(address,new WebServiceImpl());
System.out.println("发布成功....");
}
}
package service;

import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;

public class CXFClient {
public static void main(String[] args) {
JaxWsProxyFactoryBean svr = new JaxWsProxyFactoryBean();
svr.setServiceClass(WebServiceI.class);
svr.setAddress("http://localhost:8989/WS_Server/WebService");
WebServiceI ws = (WebServiceI) svr.create();
System.out.println("调用webservice服务的结果是:"+ws.sayHello("李四"));
}
}

本次我们发现最大的改变是在接口、实现上添加了注解@WebService,客户端的代码稍微变化大一点。

测试结果一样,启动服务端主程序后,控制台显示发布成功

执行客户端主程序后:

本次CXF实现webservice成功

webservice学习随笔(二):通过cxf实现webservice的更多相关文章

  1. WebService技术(二)— CXF

    前言:学习笔记,以供参考 Apache CXF 是一个开源的 Services 框架,CXF 帮助您利用 Frontend 编程 API 来构建和开发 Services .可以与Spring进行快速无 ...

  2. WebService学习总结(三)——使用JDK开发WebService(转)

    一.WebService的开发手段 使用Java开发WebService时可以使用以下两种开发手段 1. 使用JDK开发(1.6及以上版本) 2.使用CXF框架开发(工作中) 二.使用JDK开发Web ...

  3. [转] WebService开发笔记 1 -- 利用cxf开发WebService竟然如此简单

    以下文章来自   http://www.blogjava.net/jacally/articles/186655.html 现在的项目中需要用到SOA概念的地方越来越多,最近我接手的一个项目中就提出了 ...

  4. WebService学习总结(二)——WebService相关概念介绍

    一.WebService是什么? 1. 基于Web的服务:服务器端整出一些资源让客户端应用访问(获取数据) 2. 一个跨语言.跨平台的规范(抽象) 3. 多个跨平台.跨语言的应用间通信整合的方案(实际 ...

  5. WebService学习之三:spring+cxf整合

    步骤一:spring项目(java web项目)引入CXF jar包 步骤二:创建webservice服务器 1)创建一个服务接口 package com.buss.app.login; import ...

  6. CXF之二(CXF发布webService)

    Apache CXF提供了用于方便地构建和开发WebService的可靠基础架构.它允许创建高性能和可扩展的服务,可以部署在Tomcat和基于spring的轻量级容器中,也可以部署在更高级的服务器上, ...

  7. WebService学习总结(三)——使用JDK开发WebService

    一.WebService的开发手段 使用Java开发WebService时可以使用以下两种开发手段 1. 使用JDK开发(1.6及以上版本) 2.使用CXF框架开发(工作中) 二.使用JDK开发Web ...

  8. WebService学习--(四)调用第三方提供的webService服务

    互联网上面有很多的免费webService服务,我们可以调用这些免费的WebService服务,将一些其他网站的内容信息集成到我们的Web应用中显示,下面就以获取天气预报数据和查询国内手机号码归属地为 ...

  9. [置顶] WebService学习总结(4)——第三方webService服务调用

    互联网上面有很多的免费webService服务,我们可以调用这些免费的WebService服务,将一些其他网站的内容信息集成到我们的Web应用中显示,下面就以获取天气预报数据和查询国内手机号码归属地为 ...

  10. WebService学习总结——调用第三方提供的webService服务

    互联网上面有很多的免费webService服务,我们可以调用这些免费的WebService服务,将一些其他网站的内容信息集成到我们的Web应用中显示,下面就以获取天气预报数据. 气象中心的管理系统将收 ...

随机推荐

  1. P8201 [传智杯 #4 决赛] [yLOI2021] 生活在树上(hard version)

    个人思路: 首先,题目可以转化为是否存在 \(a,b\) 路径上一点 \(u\),满足 \(w_u = dis{1,a} \oplus dis{1,b} \oplus w_{lca(a,b)} \op ...

  2. Excel——解除工作表保护

    策略:删除密码保护,而非破解密码 例 该工作簿有工作表保护,因忘记密码,无法更改内容. 解决方案 1.用压缩软件打开表格. 2.向下进入目录:xl/worksheets,选择sheet1.xml,用记 ...

  3. 统计学习导论之R语言应用(三):线性回归R语言代码实战

    统计学习导论(ISLR) 参考资料 The Elements of Statistical Learning An Introduction to Statistical Learning 统计学习导 ...

  4. 刚开始学python不知从何学习推荐你一本《Python零基础入门》书,免费领取

    百度云盘:Python零基础入门学习pdf高清版书籍下载 提取码:yzh3        

  5. 2019-2020-1 20199318《Linux内核原理与分析》第十二周作业

    <Linux内核原理与分析> 第十二周作业 一.预备知识 Set-UID 是 Unix 系统中的一个重要的安全机制.当一个 Set-UID 程序运行的时候,它被假设为具有拥有者的权限.例如 ...

  6. abap 自定义搜索帮助

    ABAP 选择屏幕 自定义搜索帮助 物料号为例 如图展示的物料,是不经过自定义搜索帮助处理的,如果我只需要物料描述和物料号,且只限定20开头的物料,就需要用到自定义搜索帮助了 当使用自定义帮助后 效果 ...

  7. 运筹学之线性规划 1.X

    线性规划 线性规划问题的标准形式可以写成: \[\begin{aligned} &max~z=\pmb{c}^T\pmb{X} \\ &s.t.\{ \begin{aligned} & ...

  8. Delphi中纤程的使用

    首先我们来看看纤程的定义 纤程(来自百科): 纤程是Windows为了将Unix服务程序更好的移植到Windows上而创建的, 线程是在Windows内核中实现的,纤程是在用户模式下实现的,内核对纤程 ...

  9. Linux非正式学习随笔(1)

    11.5进linux学的第一件事,找个中文输入法.Linux是一套免费的类unix操作系统GPL:gnu通用公共许可证.托马斯斯托曼提出gnu计划,自由软件思想的一个协议.Linux诞生1991年10 ...

  10. iClock数据服务器默认账号密码

    网络空间资产搜索: shodan 搜索 默认密码 admin/a***n End!!!