这是按照网上一个示例说明,自己又从新做了一下。
当然这也是工作需要。简单易懂。
版本是apache-cxf-2.6.2
百度的名片:
关于Apache CXF
Apache CXF = Celtix + XFire,Apache CXF 的前身叫 Apache CeltiXfire,现在已经正式更名为 Apache CXF 了,以下简称为 CXF。CXF 继承了 Celtix 和 XFire 两大开源项目的精华,提供了对 JAX-WS 全面的支持,并且提供了多种 Binding 、DataBinding、Transport 以及各种 Format 的支持,并且可以根据实际项目的需要,采用代码优先(Code First)或者 WSDL 优先(WSDL First)来轻松地实现 Web Services 的发布和使用。Apache CXF已经是一个正式的Apache顶级项目。
Apache CXF 是一个开源的 Services 框架,CXF 帮助您利用 Frontend 编程API 来构建和开发 Services ,像 JAX-WS 。这些 Services 可以支持多种协议,比如:SOAP、XML/HTTP、RESTful HTTP 或者 CORBA ,并且可以在多种传输协议上运行,比如:HTTP、JMS 或者 JBI,CXF 大大简化了 Services 的创建,同时它继承了 XFire 传统,一样可以天然地和 Spring 进行无缝集成。
一、如何发布一个Webservice
先看一下要发布的那个Java文件:
package com.eetrust.webservice;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.Style;
import javax.jws.WebParam;
/**
* function:CXF WebService 服务器端helloWorld示例
* @author sunac
* @createDate 2012-9-26 上午08:29:07
* @file HelloWorldService.java
* @package com.eetrust.webservice
* @project TestProperty
* @version 1.0
*/
@WebService
@SOAPBinding(style = Style.RPC)
public class HelloWorldService {
public String sayHello(@WebParam(name = "name") String name){
return name + "say: HelloWorld";
//可以其他处理逻辑
}
}
下面要对这个Service进行发布了:
看下面这个代码文件:
package com.eetrust.deploy;
import org.apache.cxf.jaxws.JaxWsServerFactoryBean;
import com.eetrust.webservice.HelloWorldService;
/**
* function:CXF WebService 服务器端发布
* @author sunnyboysac
* @createDate 2012-9-26 上午08:29:07
* @file HelloWorldService.java
* @package com.eetrust.deploy
* @project TestProperty
* @version 1.0
*/
public class DeployHelloWorldService {
public static void deploy(){
System.out.println("-----Server start -----");
HelloWorldService service = new HelloWorldService();
JaxWsServerFactoryBean factoryBean = new JaxWsServerFactoryBean();
factoryBean.setAddress("http://localhost:8080/HelloWorld");
factoryBean.setServiceClass(HelloWorldService.class);
factoryBean.setServiceBean(service);
factoryBean.create();
System.out.println("发布成功");
}
public static void main(String[] args) {
deploy();
}
}
运行上面这个文件,Console显示发布成功的话,该Webservice就可以使用了访问http://localhost:8080/HelloWorld?wsdl
可以访问的话,说明Webservice发布成功了
二、如何生成Java客户端调用Webservice
通过wsdl2java命令工具来生成客户端
进入dos界面 ,进入apache-cxf-2.6.2/bin下执行命令 wsdl2java -p com.eetrust.client -d d:/ http://127.0.0.1:8080/HelloWorld?wsdl
dir 命令用于查看文件列表
解释:
命令的格式为:wsdl2java -p 包名 -d 生成代码存放目录 wsdl的url
wsdl的url为要调用的webservice的服务地址
wsdl2java用法:
wsdl2java -p com -d src -all aa.wsdl
-p 指定其wsdl的命名空间,也就是要生成代码的包名;
-d 指定要产生代码所在目录;
-client 生成客户端测试web service的代码;
-server 生成服务器启动web service的代码;
-impl 生成web service的实现代码;
-impl 生成web service的实现代码;
-all 生成所有开始端点代码:types,service proxy, service interface, server mainline, client mainline, implementation object, and an Ant build.xml file。
执行命令之后会生成代码,将其拷入自己工程里,写个文件
package com.eetrust.client;
import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;
/**
* function cxf客户端 调用webservice提供的方法sayHello
* @author sunac
* @createDate 2012-09-27
* @file Client.java
* @package com.eetrust.client
* @project TestProperty
* @version 1.0
*/
public class Client {
public static void main(String[] args) throws Exception{
JaxWsDynamicClientFactory cxf = JaxWsDynamicClientFactory.newInstance();
org.apache.cxf.endpoint.Client client = cxf.createClient("http://127.0.0.1:8080/HelloWorld?wsdl");
System.out.println("===================================");
//sayHello 为接口中定义的方法名称 张三为传递的参数 返回
Object[] objects = client.invoke("sayHello", "张三");
//输出调用结果
System.out.println(objects[0].toString());
}
}
运行main之后 控制台信息:
2012-9-27 20:51:38 org.apache.cxf.common.jaxb.JAXBUtils logGeneratedClassNames
信息: Created classes:
javacTask: 无源文件
用法: javacTask <options> <source files>
-help 用于列出可能的选项
2012-9-27 20:51:38 org.apache.cxf.endpoint.dynamic.DynamicClientFactory createClient
严重: Could not compile java files for http://127.0.0.1:8080/HelloWorld?wsdl.
===================================
张三say: HelloWorld
调用成功。
分享到:
相关推荐
2.用cxf开发webservice 3.这个服务端和客户端的小demo 在服务端 对外开放接口服务,然后在客户端 调用服务端的方法, 实现客户端(一个javaweb项目)对服务端(javaweb项目)方法的调用, 实际上就是发送和接收消息...
Java WebService CXF客户端调用和服务端的实现是企业级应用程序中常见的通信方式,它基于标准的SOAP(Simple Object Access Protocol)协议,提供了一种在分布式环境中交换信息的方法。CXF是一个开源框架,它简化了...
Java CXF Webservice接口在处理Web服务时,可能会遇到跨域问题,这通常是由于浏览器的安全策略限制了不同源之间的通信。解决这个问题的关键在于理解和应用CORS(Cross-Origin Resource Sharing)机制。CORS允许...
例如,可以使用`@WebService`注解标记一个Java类为Web服务接口,并使用`@Path`注解来定义RESTful服务的URL路径。 4. **CXF服务部署**:CXF提供多种部署方式,包括独立服务器、Tomcat等应用服务器,以及Spring容器。...
**WebService CXF 详解** **一、WebService简介** WebService是一种基于标准的,可以在不同操作系统、编程语言之间交换数据的Web应用程序。它通过WSDL(Web服务描述语言)定义了服务接口,利用SOAP(简单对象访问...
使用cxf wsdl2java生成webservice客户端命令
WebService CXF 用了一天时间找,官网打不开,国内要积分,下下来又永不了。最后终于搞到手,上传上来分享给大家。 jdk版本 CXF版本 java 9及以上 3.3.x java 8 3.x java 7 2.2x --- 3.2之前版本 java 6 3.1 ...
webservice示例 springmvc+maven+cxf发布webservice 博客地址 http://blog.csdn.net/joe_storm/article/details/78839150
当我们谈论“使用CXF发布WebService”时,我们实际上是在讨论如何利用Apache CXF框架创建和部署Web服务。Apache CXF是一个开源的Java框架,专门用于构建和消费Web服务,支持多种协议,如SOAP和RESTful。 首先,我们...
Java调用CXF WebService接口的两种方式实例 Java调用CXF WebService接口是Java开发者在开发过程中经常遇到的问题。今天,我们将讨论Java调用CXF WebService接口的两种方式实例,即静态调用和动态调用。 静态调用 ...
【标题】"webservice cxf_demo" 涉及到的是使用Apache CXF框架创建的Web服务示例项目。在Web服务的世界里,CXF是一个流行的开源工具,它支持SOAP和RESTful风格的服务,用于构建和消费Web服务。这个"CXF_demo"很可能...
**WebService CXF 对象传递详解** 在Web服务领域,CXF是一个非常重要的开源框架,它允许开发者创建和消费各种Web服务。CXF支持SOAP、RESTful等多种通信模式,并且能够处理复杂的对象传递,使得Web服务的数据交换...
用camel-cxf调用webservice和发布一个webservice接口例子,首先启动QueryServiceMain主函数启动webservice接口,然后启动测试类TestWebservice。例子主要是实现java代码实现camel调用webservice接口
CXF(CXF: Composite eXtensible Framework)是一个开源的Java Web服务框架,它用于构建和部署Web服务。此"CXF Webservice Demo"是一个实例,展示了如何使用CXF来创建和消费Web服务。CXF允许开发者通过SOAP(简单...
【标题】"CXF Webservice+Mybatis" 深度解析 在现代软件开发中,集成不同的技术栈以构建高效、可维护的系统是常见的做法。本篇将深入探讨如何利用Apache CXF作为Web服务框架,与Mybatis作为持久层框架进行整合,...
【Java WebService 源码使用 CXF 框架详解】 Java WebService 是一种基于标准的、平台无关的通信方式,它允许不同系统间的应用程序通过网络交换数据。CXF 是一个开源的 Java 库,它提供了创建和消费 WebService 的...
WebService CXF 用了一天时间找,官网打不开,国内要积分,下下来又永不了。最后终于搞到手,上传上来分享给大家。 jdk版本 CXF版本 java 9及以上 3.3.x java 8 3.x java 7 2.2x --- 3.2之前版本 java 6 3.1 ...
CXF全称CXF CXF (Continued eXtensible Framework),它是一个Java框架,提供了创建和消费Web服务的能力。CXF支持WS-*标准,如WS-Security、WS-ReliableMessaging等,并且对RESTful API的构建也十分友好。其设计目标...
CXF(CXF: XFire Community eXtended)是一个开源的Java框架,用于构建和部署Web服务。它提供了强大的支持,包括SOAP、RESTful API、WS-*规范等多种协议和服务模型。CXF不仅简化了Web服务的开发,而且允许开发者无缝...
CXF支持多种模型,包括JAX-WS(Java API for XML Web Services),JBI(Java Business Integration),SCA(Service Component Architecture)以及CORBA服务,为开发者提供了丰富的选择。 在CXF中,服务是基于WSDL...