一:基本概念(可跳过)

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. Access denied You do not have access to chat.openai.com. The site owner may have set restrictions that prevent you from accessing the site.解决办法

    报错 Access denied You do not have access to chat.openai.com. The site owner may have set restrictions ...

  2. leetcode 98. 验证二叉搜索树 【一遍dfs】【时间击败99.72%】【内存击败94.23%】

    复用left[],[时间击败73.33%]-->[时间击败99.72%] [内存击败36.17%]-->[内存击败94.23%] dfs(r)返回值=new long[]{包括r节点的子树 ...

  3. hadoop单机测试环境安装(简)

    1.下载hadoop官网就可以下载.可以直接搜hadoop  ,  其实可以直接查看官网的版主文档搭建https://hadoop.apache.org/docs/stable/hadoop-proj ...

  4. 「DIARY」PKUSC2021 小结

    另外有一个纯吐槽游记版本的,还没有写完(快写完了,真的) 欢迎各路神仙来吐槽一个菜鸡的考场思路 # Day1 考场小结 总体而言,T1 完全就是送分,做得也挺快的:T2 大概是本场最难的题:然后 T3 ...

  5. 数据库tempdb的事物日志已满,原因为“ACTIVE_TRANSACTION”

    系统运行过程中,突然报错数据库tempdb的事物日志已满,原因为"ACTIVE_TRANSACTION".导致所有业务崩溃. 接到报警后,进入数据库服务器.检查硬盘空间正常,于是登 ...

  6. Linux系统安装&VMware安装二

    第八步: 完成后,选择刚刚创建好的系统

  7. EF存储过程

    select * from Goods --创建存储过程create proc sp_Show( @index int, --当前页 @size int, --每页大小 @totalcount int ...

  8. webpack1.x 打包文件过大优化

    1. 图片单独打包 module: { loaders: [ { test: /\.(jpe?g|png|gif|svg)$/, loader: 'url?limit=8192&name=./ ...

  9. mysql零基础-2

    更新中的数据完整性错误 UPDATE employees SET department_id = 55 WHERE department_id = 110; 删除数据 删除一条记录 DELETE FR ...

  10. 【NumPy】Python将数组中低于一定百分比的值替换

    情景举例 现有一个一维数组(或二维进行遍历)存放着很多,找到低于中位数20%的值并将小于该值的数全部替换为该值. 涉及方法 np.median(data, axis=0)用于计算数组中元素的中位数(中 ...