`
icarusliu
  • 浏览: 235398 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

cxf客户端的写法

阅读更多

WSDL2Java generated Client

One of the most common scenarios is that where you have a service which you may or not manage and this service has a WSDL. In this case you'll often want to generate a client from the WSDL. This provides you with a strongly typed interface by which to interact with the service. Once you've generated a client, typical usage of it will look like so:

HelloService service = new HelloService();
Hello client = service.getHelloHttpPort();

String result = client.sayHi("Joe");

The WSDL2Java tool will generate JAX-WS clients from your WSDL. You can run WSDL2java one of three ways:

For more in depth information read Developing a JAX-WS consumer or see the Hello World demos inside the distribution.

JAX-WS Proxy

Instead of using a wsdl2java-generated stub client directly, you can use Service.create to create Service instances, the following code illustrates this process:

import java.net.URL;
import javax.xml.ws.Service;
...

URL wsdlURL = new URL("http://localhost/hello?wsdl");
QName SERVICE_NAME = new QName("http://apache.org/hello_world_soap_http", "SOAPService");
Service service = Service.create(wsdlURL, SERVICE_NAME);
Greeter client = service.getPort(Greeter.class);
String result = client.greetMe("test");

JAX-WS Dispatch APIs

JAX-WS provides the "dispatch" mechanism which makes it easy to dynamically invoke services which you have not generated a client for. Using the Dispatch mechanism you can create messages (which can be JAXB objects, Source objects, or a SAAJMessage) and dispatch them to the server. A simple example might look like this:

import java.net.URL;
import javax.xml.transform.Source;
import javax.xml.ws.Dispatch;
import javax.xml.ws.Service;
...

URL wsdlURL = new URL("http://localhost/hello?wsdl");
Service service = Service.create(wsdlURL, new QName("HelloService"));
Dispatch<Source> disp = service.createDispatch(new QName("HelloPort"), Source.class, Service.Mode.PAYLOAD);

Source request = new StreamSource("<hello/>")
Source response = disp.invoke(request);

NOTE: you can also use dispatches without a WSDL.

For more in depth information see the Hello World demos inside the distribution.

Simple Frontend Client Proxy

If you've developed a service using the simple frontend, you can use the ClientProxyFactoryBean API to create a Java proxy client for your service. This way you can use the service interface to talk to your service. For more information see the Simple Frontend documentation.

Dynamic Client

CXF includes a Client interface which allows you to invoke operations and pass parameters for those operations. For instance:

Client client = ....;
Object[] result = client.invoke("sayHi", "Dan");

There are two ways to create Clients at runtime. The first would be through the ClientFactoryBean and JaxWsClientFactoryBean classes. The second is through the DynamicClientFactory. The DynamicClientFactory goes the additional step of generating and compiling JAXB POJOs in the background for use at runtime via reflection. This is most useful when you're using a dynamic language such as Groovy with CXF.

评论
1 楼 simon511 2009-02-23  
最好给出demo

相关推荐

    CXF客户端支持最少jar

    CXF客户端是开发人员用来与CXF服务交互的重要组件,它允许我们轻松地调用远程Web服务。然而,为了减小程序的体积和依赖性,有时我们需要精简CXF客户端所依赖的jar包。本文将深入探讨如何配置和使用CXF客户端所需的...

    cxf客户端所需jar包-4个

    标题 "cxf客户端所需jar包-4个" 暗示了这四个JAR文件是Apache CXF框架中用于构建客户端应用程序的基本组件,使得开发者能够方便地调用Web服务。Apache CXF是一个开源的Java框架,它允许创建和消费Web服务,支持多种...

    cxf客户端调用axis服务端流程

    总之,使用CXF客户端调用Axis服务端涉及多个步骤,包括生成客户端代码、配置客户端、创建服务代理以及进行实际调用。理解这些步骤并正确实现它们是成功通信的关键。在实际开发过程中,可能会遇到各种问题,需要耐心...

    CXF客户端添加soapHeader代码 + jar包 + apache-cxf-3.1.15

    以上步骤展示了如何在CXF客户端中添加SOAP Header,这个过程涉及到CXF客户端的配置、自定义Header处理以及服务调用。通过这样的方式,我们可以灵活地控制SOAP请求中的Header信息,满足各种服务交互的需求。记得根据...

    CXF客户端生成器

    【CXF客户端生成器】是基于Apache CXF框架的一个实用工具,主要用于自动生成Java客户端代码,使得开发者可以方便地调用Web服务。Apache CXF是一个开源的SOAP和RESTful Web服务框架,它允许开发者创建和消费各种Web...

    CXF客户端调用例子

    CXF客户端调用例子展示了如何使用CXF来创建和消费Web服务。这个例子包含了服务端和客户端两部分,两者都是用Java语言编写的。 在Java中,CXF提供了丰富的API和工具,使得开发者能够方便地实现SOAP(Simple Object ...

    CXF客户端,自动生成方式

    本篇文章将深入探讨如何使用CXF作为客户端框架,通过MyEclipse集成开发环境自动生成Web服务客户端。 首先,我们要理解CXF的基本概念。CXF,全称“CXF:Confusing eXtensible Framework”,它提供了多种方式来创建...

    Java webservice cxf客户端调用demo和服务端

    Java WebService CXF客户端调用和服务端的实现是企业级应用程序中常见的通信方式,它基于标准的SOAP(Simple Object Access Protocol)协议,提供了一种在分布式环境中交换信息的方法。CXF是一个开源框架,它简化了...

    Cxf客户端及服务器端,实现客户端和服务器端的权限验证

    在本文中,我们将深入探讨如何在Apache CXF框架中实现客户端和服务器端的权限验证。Apache CXF是一个开源的Java框架,主要用于构建和开发服务导向架构(SOA)和服务级应用程序。它支持多种Web服务标准,包括SOAP、...

    apache-cxf-2.7.7以及cxf客户端所需要的jar包

    这个压缩包"apache-cxf-2.7.7以及cxf客户端所需要的jar包"包含了Apache CXF 2.7.7版本及其客户端运行所需的库文件。这些jar包对于创建、部署和消费Web服务至关重要,特别是对于使用命令行生成Web服务客户端的开发者...

    cxf客户端(对象,上传与下载文件支持断点传输)

    【标题】:“CXF客户端:对象参数,文件上传下载及断点续传功能” 在Java Web开发中,CXF框架广泛用于实现Web服务,包括SOAP和RESTful接口。本示例着重于CXF客户端如何处理对象参数传递以及支持文件的上传和下载,...

    CXF客户端启动过程

    【标题】:“CXF客户端启动过程详解” 【正文】: CXF(Apache CXF)是一个开源的Java框架,主要用于构建和服务导向架构(SOA)。它提供了丰富的API和工具,用于创建Web服务,既可以作为服务器端也可以作为客户端。...

    基于SSL验证的Apache CXF客户端设计

    基于SSL验证的Apache CXF客户端设计 1,服务器端Tomcat配置SSL支持 2,服务器端Web Service接口设计 3,客户端访问设计,包括代码和配置文件 详情请看博客:...

    webservice的cxf框架客户端调用所需jar包

    CXF框架是Apache组织开发的一款开源的Web服务框架,它支持SOAP、RESTful等多种Web服务标准,同时也提供了客户端和服务端的实现。在使用CXF框架进行Web服务客户端调用时,需要依赖一系列的JAR包来确保功能的正常运行...

    CXF客户端最少包

    【CXF客户端最少包】指的是在使用Apache CXF框架构建客户端应用时,为了实现基本的SOAP或RESTful服务调用,所需要最小化的依赖集合。在这个描述中,提到了两个核心的JAR文件:cxf-2.7.18.jar和fastjson-1.2.34.jar。...

    CXF客户端测试需要的最少JAR包

    在标题和描述中提到的“CXF客户端测试需要的最少JAR包”,是指能够支持CXF客户端功能运行的基础依赖集合。 通常,一个基础的CXF客户端测试环境可能包括以下关键组件: 1. **cxf-rt-frontend-jaxws**:这是CXF的...

    springboot整合CXF发布webservice和客户端调用

    - 对于客户端调用,可以使用CXF的`JaxWsProxyFactoryBean`创建服务代理对象,然后调用其方法进行服务调用。 4. **项目结构** - `.classpath`和`.project`是Eclipse IDE的项目配置文件。 - `pom.xml`是Maven的...

    cxf客户端出现GBK编码问题解决jar.rar

    综上所述,解决CXF客户端的GBK编码问题需要对服务端和客户端的配置有深入理解,并且要确保在数据传输的每个环节都正确处理字符编码。通过以上步骤,你应该能够解决大多数由GBK编码引起的乱码问题。在实际应用中,...

    11.为CXF客户端添加自定义拦截器完成权限控制

    本节我们将深入探讨如何为CXF客户端添加自定义拦截器以实现权限控制。 首先,理解拦截器的概念是至关重要的。拦截器是一种设计模式,它允许在方法调用前后执行额外的操作,比如日志记录、事务管理或如这里的权限...

Global site tag (gtag.js) - Google Analytics