使用CXF开发Web Service服务

简介:

1、使用CXF开发Web Service服务端

1.1 开发一个Web Service业务接口,该接口要用@WebService修饰

(1)创建一个Java项目MyServer

wKiom1PlBUfC3RlPAAJcLKClvY8527.jpg

(2)在MyServer项目中创建一个接口HelloWorld

wKiom1PlBZDDXUNMAAGfkb4skIs760.jpg

1
2
3
4
5
6
package  com.xju.ws;
import  javax.jws.WebService;
@WebService
public  interface  HelloWorld {
String sayHello(String name);
}


1.2 开发一个Web Service实现类,实现类也需要用@WebService修饰

wKioL1PlB8PjrWuVAAJNdUJh04A915.jpg

1
2
3
4
5
6
7
8
9
10
11
package  com.xju.ws.impl;
import  javax.jws.WebService;
import  com.xju.ws.HelloWorld;
@WebService (endpointInterface =  "com.xju.ws.HelloWorld" , serviceName =  "HelloWorldWs" )
public  class  HelloWorldWs  implements  HelloWorld {
@Override
public  String sayHello(String name) {
// TODO Auto-generated method stub
return  null ;
}
}


1.3 使用Endpoint类的静态方法来发布WebService

wKioL1PlCe3giuerAAI1hhjTTHQ775.jpg

1
2
3
4
5
6
7
8
9
10
11
package  com.xju.ws.pub;
import  javax.xml.ws.Endpoint;
import  com.xju.ws.HelloWorld;
import  com.xju.ws.impl.HelloWorldWs;
public  class  ServerMain {
public  static  void  main(String[] args) {
HelloWorld hw= new  HelloWorldWs();
Endpoint.publish( "http://127.0.0.1:8080/test" , hw);
System.out.println( "发布成功" );
}
}

备注:在运行中必须添加CXF2.7运行库。

wKioL1PlDvnzBA2KAAP9ic6yLr8488.jpg


2 使用CXF开发Web Service客户端

2.1 调用CXF提供的wsdl2java工具,根据WSDL文件生成相应的Java代码

wKioL1PlDIvTYZLXAAJehfQhFjQ549.jpg

在DOS中进入当前项目的src目录下,如输入下命令:

    wsdl2java -frontend jaxws21 http://127.0.0.1:8080/test?wsdl

wKioL1Pnk1DQZc7aAAETs1NbIEc815.jpg

    备注:加入参数-frontend jaxws21,为了防止出现CXF自带的javax.xml.service 版本高过jdk的javax.xml.service时报错:构造函数 Service(URL, QName, WebServiceFeature[]未定义。


2.2 找到wsdl2java所生成类中,一个继承了Service的类,该类的实例当成工厂来使用

wKioL1PnlI-T17P2AAI1bkwAu3o014.jpg



2.3 调用Service子类的实例的getXxxPort方法,返回远程WebService代理

1
2
3
4
5
6
7
8
9
10
package  com.xju.publish;
import  com.xju.ws.HelloWorld;
import  com.xju.ws.impl.HelloWorldWs;
public  class  ClientMain {
public  static  void  main(String[] args) {
HelloWorldWs factory= new  HelloWorldWs();
HelloWorld hw=factory.getHelloWorldWsPort();
System.out.println(hw.sayHello( "yyq" ));
}
}

运行结果:

yyq,你好!现在时间是:Sun Aug 10 23:51:39 CST 2014


备注:此处也可以使用创建Web Service客户端的方法来创建。


     本文转自stock0991 51CTO博客,原文链接:http://blog.51cto.com/qing0991/1537678,如需转载请自行联系原作者








相关文章
|
2月前
|
XML JSON 安全
Web服务是通过标准化的通信协议和数据格式
【10月更文挑战第18天】Web服务是通过标准化的通信协议和数据格式
155 69
|
26天前
|
设计模式 前端开发 数据库
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第27天】本文介绍了Django框架在Python Web开发中的应用,涵盖了Django与Flask等框架的比较、项目结构、模型、视图、模板和URL配置等内容,并展示了实际代码示例,帮助读者快速掌握Django全栈开发的核心技术。
131 45
|
7天前
|
开发框架 JavaScript 前端开发
TypeScript 是一种静态类型的编程语言,它扩展了 JavaScript,为 Web 开发带来了强大的类型系统、组件化开发支持、与主流框架的无缝集成、大型项目管理能力和提升开发体验等多方面优势
TypeScript 是一种静态类型的编程语言,它扩展了 JavaScript,为 Web 开发带来了强大的类型系统、组件化开发支持、与主流框架的无缝集成、大型项目管理能力和提升开发体验等多方面优势。通过明确的类型定义,TypeScript 能够在编码阶段发现潜在错误,提高代码质量;支持组件的清晰定义与复用,增强代码的可维护性;与 React、Vue 等框架结合,提供更佳的开发体验;适用于大型项目,优化代码结构和性能。随着 Web 技术的发展,TypeScript 的应用前景广阔,将继续引领 Web 开发的新趋势。
21 2
|
17天前
|
Go UED
Go Web服务中如何优雅平滑重启?
在生产环境中,服务升级时如何确保不中断当前请求并应用新代码是一个挑战。本文介绍了如何使用 Go 语言的 `endless` 包实现服务的优雅重启,确保在不停止服务的情况下完成无缝升级。通过示例代码和测试步骤,详细展示了 `endless` 包的工作原理和实际应用。
35 3
|
18天前
|
JSON Go UED
Go Web服务中如何优雅关机?
在构建 Web 服务时,优雅关机是一个关键的技术点,它确保服务关闭时所有正在处理的请求都能顺利完成。本文通过一个简单的 Go 语言示例,展示了如何使用 Gin 框架实现优雅关机。通过捕获系统信号和使用 `http.Server` 的 `Shutdown` 方法,我们可以在服务关闭前等待所有请求处理完毕,从而提升用户体验,避免数据丢失或不一致。
17 1
|
22天前
|
前端开发 API 开发者
Python Web开发者必看!AJAX、Fetch API实战技巧,让前后端交互如丝般顺滑!
在Web开发中,前后端的高效交互是提升用户体验的关键。本文通过一个基于Flask框架的博客系统实战案例,详细介绍了如何使用AJAX和Fetch API实现不刷新页面查看评论的功能。从后端路由设置到前端请求处理,全面展示了这两种技术的应用技巧,帮助Python Web开发者提升项目质量和开发效率。
37 1
|
24天前
|
XML 安全 PHP
PHP与SOAP Web服务开发:基础与进阶教程
本文介绍了PHP与SOAP Web服务的基础和进阶知识,涵盖SOAP的基本概念、PHP中的SoapServer和SoapClient类的使用方法,以及服务端和客户端的开发示例。此外,还探讨了安全性、性能优化等高级主题,帮助开发者掌握更高效的Web服务开发技巧。
|
27天前
|
安全 数据库 开发者
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第26天】本文详细介绍了如何在Django框架下进行全栈开发,包括环境安装与配置、创建项目和应用、定义模型类、运行数据库迁移、创建视图和URL映射、编写模板以及启动开发服务器等步骤,并通过示例代码展示了具体实现过程。
39 2
|
28天前
【Azure App Service】PowerShell脚本批量添加IP地址到Web App允许访问IP列表中
Web App取消公网访问后,只允许特定IP能访问Web App。需要写一下段PowerShell脚本,批量添加IP到Web App的允许访问IP列表里!
WK
|
27天前
|
安全 Java 编译器
C++和Java哪个更适合开发web网站
在Web开发领域,C++和Java各具优势。C++以其高性能、低级控制和跨平台性著称,适用于需要高吞吐量和低延迟的场景,如实时交易系统和在线游戏服务器。Java则凭借其跨平台性、丰富的生态系统和强大的安全性,广泛应用于企业级Web开发,如企业管理系统和电子商务平台。选择时需根据项目需求和技术储备综合考虑。
WK
49 0