以下以服务端和客户端列举几种CXF的常用方法:
服务器端:
方法一:使用Endpoint.publish进行发布,这种方式不需要其他的额外的包,也不需要进行配置文件的书写,可以用于底层属jdbc型的应用程序,其中第一个参数为访问时需要调用的功用地址,第二个参数为要发布的接口的实现类(此种方法非Cxf方式)
Endpoint endpoint = Endpoint.publish("http://localhost:8080/helloService",new HelloServiceImpl()); System.out.println("WS发布成功!");
方法二:用CXF的JaxWsServerFactoryBean类进行发布,使用这种方式发布,需要导入CXF相关的jar包,但是不需要进行相关配置文件的书写,其中address为发布的地址,serviceClass为接口类
HelloServiceImpl impl = new HelloServiceImpl(); JaxWsServerFactoryBean factoryBean = new JaxWsServerFactoryBean(); factoryBean.setAddress("http://localhost:8080/WSCXF/helloService");//发布地址 factoryBean.setServiceClass(IHelloService.class);//接口类 factoryBean.setServiceBean(impl);//发布接口的实现类的实例 factoryBean.create(); System.out.println("WS发布成功!");
方法三:使用配置式的,该方法既需要导入CXF的相关jar包,也需要进行配置文件的书写,这种方法适用于与spring整合的应用中,因为可以将bean托管给spring,也就可以随心所欲的使用spring中配置的bean了,以下是application-server.xml文件的配置信息
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxws="http://cxf.apache.org/jaxws" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd"> <import resource="classpath:META-INF/cxf/cxf.xml" /> <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" /> <import resource="classpath:META-INF/cxf/cxf-servlet.xml" /> <!--cxf配置信息--> <bean id="helloServiceBean" class="org.cxf.service.HelloServiceImpl"/> <jaxws:endpoint id="helloService" implementor="#helloServiceBean" address="/hello"> </jaxws:endpoint> </beans>
客户端:
方法一:使用CXF中 JaxWsProxyFactoryBean客户端代理工厂调用web服务,这种方法需要导入cxf相关的jar包,由于需要显式调用暴露方法的接口来生成一个实例,因此该方法适用于服务器端与客户端处于同一个应用的相同服务下的应用程序
JaxWsProxyFactoryBean soapFactoryBean = new JaxWsProxyFactoryBean(); soapFactoryBean.setAddress("http:// localhost:8080/helloService"); soapFactoryBean.setServiceClass(IHelloService.class); Object o = soapFactoryBean.create(); IHelloService helloService = (IHelloService)o; helloService.sayHello();//sayHello()为暴露的接口中的一个方法;
方法二:这种方法需要导入相关CXF的jar包,该方法的好处是只需要知道相关的暴露接口中的方法名,既可以隐式调用,适合于发布的服务器和调用的客户端不处于同一应用,同一服务下的应用程序,注意
http://localhost:8080/WSCXF/helloService //为暴露的接口的名称 ?wsdl 必须要添加,这个是接口解析成的xml文件
JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance(); Client client = dcf.createClient("http://localhost:8080/WSCXF/helloService?wsdl"); //sayHello为接口中定义的方法名称张三为传递的参数返回一个Object数组 Object[] objects=client.invoke("sayHello", "张三"); //输出调用结果 System.out.println(objects[0].toString());
相关推荐
本文将详细介绍使用CXF作为客户端调用Web服务的几种方法,并结合示例解释相关知识点。 1. **CXF客户端调用** CXF是一个开源的Java框架,它支持多种Web服务标准,包括JAX-WS和JAX-RS。对于客户端调用,CXF提供了一...
使用CXF,开发者可以方便地创建SOAP服务,通过WSDL(Web Service Description Language)定义服务接口,并通过JAXB(Java Architecture for XML Binding)自动处理XML到Java对象的映射。同时,CXF也支持通过JAX-RS...
在CXF中,有几种方式可以消费Web Service: 1. **JAX-WS客户端**:使用CXF的代码生成工具,可以从WSDL文件生成客户端代理类。这些类可以直接调用Web Service方法,就像调用本地方法一样。 2. **动态客户端**:如果...
2. **CXF架构**:CXF的架构由几个关键组件构成,包括Bus(消息总线)、Endpoint(服务端点)、Service(服务)、DataBinding(数据绑定)和Transport(传输)。这些组件协同工作,处理服务的生命周期、消息传递和...
1. **wsdl2java.jar**:这个工具是CXF的一部分,用于从WSDL(Web Service Definition Language)文件自动生成Java客户端代码。WSDL是一种XML格式,定义了Web服务的接口,包括操作、消息格式和绑定信息。使用wsdl2...
CXF、AXIS2、XFire是三种流行的Java Web服务框架,它们允许开发者创建和消费Web服务。在本文中,我们将重点关注CXF客户端调用Web服务的方法,特别是处理Map类型参数的问题。 首先,CXF客户端调用Web服务时,通常会...
5. **发布和调用WS**:CXF会自动生成WSDL(Web Service Description Language)文件,描述了Web Service的接口和方法。开发者可以通过指定的URL访问这个WSDL,然后根据其内容创建客户端来调用Web Service。 6. **...
在"Apache CXF开发Web Service理解CXF Frontends之Contract-First"的主题中,我们将深入探讨以下几个关键知识点: 1. **Web服务基础**:Web服务是一种通过网络进行通信的应用程序接口,使用标准协议如SOAP(简单...
在结合CXF和Spring实现Web Service的过程中,主要有以下几个关键知识点: 1. **配置Spring**:首先,我们需要在Spring的配置文件中定义CXF的Bean。这通常包括`JAXWSServerFactoryBean`或`JAXRSServerFactoryBean`,...
3. **AOP支持**:CXF服务的方法可以被Spring AOP拦截器环绕,实现事务管理、日志记录、性能监控等功能。只需简单地在Spring配置中定义拦截器,并将它们添加到服务的处理链中。 4. **服务发布与发现**:CXF可以利用...
- 如果使用`JaxWsServerFactoryBean.create()`方法发布服务,则`serviceName`默认为接口的简单名称加上`Service`(例如`BigDataServiceService`)。 #### 四、客户端调用 ##### 1. 创建客户端项目 - **项目命名**...
CXF允许开发者从代码或WSDL(Web Services Description Language)直接创建Web服务,提供了一种直观且灵活的方式来构建服务端和客户端。 在SpringMVC中整合CXF,可以利用Spring的IoC(Inversion of Control)和AOP...
2. 生成WSDL:使用CXF的工具,可以根据服务接口生成WSDL(Web Service Definition Language)文件,这是Web服务的接口描述语言。 3. 实现服务接口:创建一个实现了服务接口的Java类,实现具体的服务逻辑。 4. 部署...
在这个"CXF soap例子源码"中,我们可以深入理解如何使用CXF框架来实现基于SOAP的Web服务。 首先,SOAP是一种基于XML的协议,允许应用程序通过HTTP或其他传输协议进行通信。在CXF中,你可以使用Java API for RESTful...
Java WebService CXF客户端调用和服务端的实现是企业级应用程序中常见的通信方式,它基于标准的SOAP(Simple Object Access Protocol)协议,提供了一种在分布式环境中交换信息的方法。CXF是一个开源框架,它简化了...
CXF主要由以下几个核心部分组成: 1. **Bus**:CXF的总线(Bus)是其核心组件,它管理服务、消息处理器、数据绑定、协议适配器等。Bus允许开发者通过插件系统进行扩展,提供了一种统一的方式来配置和控制整个框架。...
5. **客户端API**:CXF提供了一种直观的客户端API,使得调用Web服务就像调用本地方法一样简单。 6. **集成能力**:CXF可以很好地与Spring框架集成,通过Spring配置文件可以轻松地管理CXF服务和客户端。 7. **工具...
在本文中,我们将深入探讨如何使用Apache CXF从WSDL(Web Service Description Language)文件生成Java代码。 WSDL是一种XML格式的规范,用于描述Web服务的接口,包括服务提供的操作、消息格式、地址和绑定等信息。...