【WebService框架-CXF】——CXF入门实例

2024-05-25 10:38

本文主要是介绍【WebService框架-CXF】——CXF入门实例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这篇文章主要介绍如何编写WebService的服务端和客户端

准备工作

下载apache-cxf-2.4.0的jar包
将bin目录配置到环境变量中,如:E:\Workspaces\MyEclipse 10\CXF\apache-cxf-2.4.0\bin

编写服务端

  1. New –》 Java Project
     备注:如果使用apache-cxf-2.4.0,jdk需要是1.7
  2. 编写接口和实现类
  3. 添加@Web Service注解(接口和实现类都要添加)
     其中实现类的注解要指明实现了哪个接口
@WebService
public interface HelloWorld {String sayHi(String name);   
}
@WebService(endpointInterface = "com.tgb.ws.HelloWorld",serviceName = "HelloWorldWS")
public class HelloWorldWS implements HelloWorld {public String sayHi(String name) {Date currentDate=new Date();SimpleDateFormat sdf=new SimpleDateFormat("YYYY-MM-dd hh:mm:ss");String strDate=sdf.format(currentDate);return name+",你好!"+ "现在时间是:"+strDate;}}

 endpintInterface:表示该实现类实现的接口,写完整类名
 serviceName表示服务的名称,可以任意写。
4. 引入Jar包
这里写图片描述
5. 发布服务
 (使用Endpoint类发布的静态方法)

public class TestMain {public  static  void main(String[] arg){HelloWorld hw=new HelloWorldWS();//hw.sayHi("许晨阳");Endpoint.publish("http://localhost/HelloWorldWS",hw);System.out.println("Web Service暴露成功!");}
}

 Jetty默认是80。这里将端口改成9009。如:http://localhost:9009/HelloWorldWS
6. 测试服务
 服务地址+”?wsdl” http://localhost/HelloWorldWS?wsdl

客户端

  1. New Java Project(WS_Client)
  2. 生成客户端代码
    在命令窗口定位到客户端项目的src目录下,通过工具wsdl2java 服务地址(**?wsdl)生成客户端代码
    这里写图片描述

  3. 编写客户端调用代码,调用服务
    调用服务工厂(一个继承了service的类)的get**Port方法

public class ClientMain {public static void main(String[] args){//工厂HelloWorldWS factory=new HelloWorldWS();//只是服务的代理HelloWorld hw=factory.getHelloWorldWSPort();System.out.println(hw.sayHi("许晨阳"));   }
}

这里写图片描述

回顾与总结

回顾自己曾经总结的【EJB系列】(五)——EJB与WebService

发现与用CXF编写WebService的服务端和客户端的步骤和代码有很多相同点。

服务端

1.用@WebService注解实现类

-CXFEJB
接口注解@WebService注解
实现类上的注解@WebService(endpointInterface = “com.tgb.ws.HelloWorld”,serviceName = “HelloWorldWS”)@WebService,服务名称默认由实现类名+Service构成
实现类中的方法@WebMethod

2.发布服务

-CXFEJB
服务地址“http://localhost:9009/HelloWorldWS“,可以是任意指定地址“http://localhost:8091/ejb_05/UserManagerBean“,这是默认发布的地址,8091是我本机JBOSS的端口,ejb_05是项目名,UserManagerBean是实现类的名称
服务器本例,默认采用CXF自带的Jetty,可以用TomcatJBOSS

3.生成的wsdl文档

-CXFEJB
WSDL文档一个接口文档和一个实现文档接口文档和实现文档写在了一个

客户端

  1. 依据wsdl文档生成客户端代码
  2. 编写客户端调用服务代码
    1. 获得工厂
    2. 通过工厂生成服务代理
    3. 调用代理中的方法

这篇关于【WebService框架-CXF】——CXF入门实例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1001268

相关文章

Oracle Expdp按条件导出指定表数据的方法实例

《OracleExpdp按条件导出指定表数据的方法实例》:本文主要介绍Oracle的expdp数据泵方式导出特定机构和时间范围的数据,并通过parfile文件进行条件限制和配置,文中通过代码介绍... 目录1.场景描述 2.方案分析3.实验验证 3.1 parfile文件3.2 expdp命令导出4.总结

MySQL的索引失效的原因实例及解决方案

《MySQL的索引失效的原因实例及解决方案》这篇文章主要讨论了MySQL索引失效的常见原因及其解决方案,它涵盖了数据类型不匹配、隐式转换、函数或表达式、范围查询、LIKE查询、OR条件、全表扫描、索引... 目录1. 数据类型不匹配2. 隐式转换3. 函数或表达式4. 范围查询之后的列5. like 查询6

MyBatis框架实现一个简单的数据查询操作

《MyBatis框架实现一个简单的数据查询操作》本文介绍了MyBatis框架下进行数据查询操作的详细步骤,括创建实体类、编写SQL标签、配置Mapper、开启驼峰命名映射以及执行SQL语句等,感兴趣的... 基于在前面几章我们已经学习了对MyBATis进行环境配置,并利用SqlSessionFactory核

Python开发围棋游戏的实例代码(实现全部功能)

《Python开发围棋游戏的实例代码(实现全部功能)》围棋是一种古老而复杂的策略棋类游戏,起源于中国,已有超过2500年的历史,本文介绍了如何用Python开发一个简单的围棋游戏,实例代码涵盖了游戏的... 目录1. 围棋游戏概述1.1 游戏规则1.2 游戏设计思路2. 环境准备3. 创建棋盘3.1 棋盘类

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

数论入门整理(updating)

一、gcd lcm 基础中的基础,一般用来处理计算第一步什么的,分数化简之类。 LL gcd(LL a, LL b) { return b ? gcd(b, a % b) : a; } <pre name="code" class="cpp">LL lcm(LL a, LL b){LL c = gcd(a, b);return a / c * b;} 例题:

Java 创建图形用户界面(GUI)入门指南(Swing库 JFrame 类)概述

概述 基本概念 Java Swing 的架构 Java Swing 是一个为 Java 设计的 GUI 工具包,是 JAVA 基础类的一部分,基于 Java AWT 构建,提供了一系列轻量级、可定制的图形用户界面(GUI)组件。 与 AWT 相比,Swing 提供了许多比 AWT 更好的屏幕显示元素,更加灵活和可定制,具有更好的跨平台性能。 组件和容器 Java Swing 提供了许多

【IPV6从入门到起飞】5-1 IPV6+Home Assistant(搭建基本环境)

【IPV6从入门到起飞】5-1 IPV6+Home Assistant #搭建基本环境 1 背景2 docker下载 hass3 创建容器4 浏览器访问 hass5 手机APP远程访问hass6 更多玩法 1 背景 既然电脑可以IPV6入站,手机流量可以访问IPV6网络的服务,为什么不在电脑搭建Home Assistant(hass),来控制你的设备呢?@智能家居 @万物互联

poj 2104 and hdu 2665 划分树模板入门题

题意: 给一个数组n(1e5)个数,给一个范围(fr, to, k),求这个范围中第k大的数。 解析: 划分树入门。 bing神的模板。 坑爹的地方是把-l 看成了-1........ 一直re。 代码: poj 2104: #include <iostream>#include <cstdio>#include <cstdlib>#include <al