`

WebService服务客户端

 
阅读更多

调用WebService服务客户端代码编写
 
目前比较流行的提供远程服务的技术中,WebService算是比较流行之一。因此,在调用WebService远程服务的客户端代码也是我们经常碰到的。本人把自己在开发中调用WebService远程服务的客户端代码总结下,算是留个笔记,方便以后使用。
1.使用Axis调用
    如果提供的远程服务方法传入的参数都是简单类型,可以不用生成客户端代码,直接手动编写调用远程服务代码。
    查看wsdl描述文件,wsdl:portType 暴露的是远程接口名称;wsdl:operation 对应的name 为远程接口暴露的方法,一般情况下 wsdl:definitions 定义的targetNamespace对应的是接口的包的反向。
 
import java.net.URL;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;

public class AxisClientSample {
 public static void main(String[] args) throws Exception {
  String[] recipients = new String[]{}; //收件人
  String strSubject = "";               //主题
  String strContent = "";      //内容
  String[] ccRecipients = new String[]{}; //抄送人
  String[] bccRecipients = null;     //密送人
  
  String endPoint = "http://service_host:port/appProject/services/XXXXService";
  Service server = new Service();
  Call call = (Call) server.createCall();
  call.setTargetEndpointAddress(new URL(endPoint));
  //call.getMessageContext().setUsername("username");  //如果远程方法需要用户名和密码验证时
  //call.getMessageContext().setPassword("password");
  String resp = (String) call.invoke("exposeMethod", new Object[]{recipients,strSubject,strContent,ccRecipients,bccRecipients});
  System.out.println(resp);
 }
}
 
如果参数是复杂类型或者自定义pojo时,使用Axis对wsdl文件生成客户端代码,使用Axis的WSDL2JAVA生成客户端代码,编写调用代码如下:
   XXXXServiceService service = new XXXXXLocator(); //获取远程服务
   XXXXService stub = service.getXXXXService();  //XXXXService是远程服务接口类
   //构建参数args  , 实际调用远程服务方法
    stub.exposeMethod(args);
 
2.XFire 调用
 方法同上,简单参数可以直接手写调用代码,复杂类型可以生成客户端代码。(为方便,当然手动也是可以的,如果你不嫌麻烦的话 -:))
XFire 需要得到远程服务的接口类,可以根据wsdl描述得到对应的包名,接口名称和方法名,手动编写接口类,比如 XXXService.
 
import java.net.MalformedURLException;
import org.codehaus.xfire.XFireFactory;
import org.codehaus.xfire.client.XFireProxyFactory;
import org.codehaus.xfire.service.Service;
import org.codehaus.xfire.service.binding.ObjectServiceFactory;
 
public class XFireClientSample {
 public static void main(String[] args) {
  Service srModel = new ObjectServiceFactory().create(XXXService.class);
  XFireProxyFactory factory = new XFireProxyFactory(XFireFactory.newInstance().getXFire());
  String endPoint = "http://service_host:port/app/services/XXXService";
  try {
   XXXService service = (XXXService) factory.create(srModel, endPoint);
   String[] recipients = new String[] {}; // 收件人
   String strSubject = ""; // 主题
   String strContent = ""; // 内容
   String[] ccRecipients = new String[] {}; // 抄送人
   String[] bccRecipients = null; // 密送人
   System.out.print("提交返回:" + service.getMethod(recipients, strSubject, strContent, ccRecipients, bccRecipients));
  } catch (MalformedURLException e) {
   e.printStackTrace();
  }
 }
}
 
3.使用CXF 调用
 
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
import test.demo.service.XXXService;
public class CXFClientSample {
 public static void main(String[] args) throws Exception{
  JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
  factory.setAddress("http://remote_host:port/service/XXXService");
  factory.setServiceClass(XXXService.class);
  XXXService service = (XXXService) factory.create();
  String username="sample";
  String response = service.executeMethod(username);
  System.out.println(response);
 }
}
 
上述三种方式都是针对简单参数,简单方法等的调用,无需生成客户端代码等麻烦过程。如果是复杂的话,使用对应的技术的生成客户端代码也是很快的,可以尽快完成自己的工作任务。
 

本文出自 “小韦的个人空间” 博客,请务必保留此出处http://weirongting.blog.51cto.com/260806/211336

分享到:
评论

相关推荐

    webservice服务器客户端

    在本场景中,"webservice服务器客户端"涉及到的主要知识点包括Web服务的原理、客户端与服务器端的交互以及XML在数据交换中的作用。下面将详细阐述这些内容。 1. WebService原理:WebService是一种通过SOAP(Simple ...

    webService在客户端调用

    webService在客户端调用webService在客户端调用webService在客户端调用webService在客户端调用webService在客户端调用webService在客户端调用webService在客户端调用webService在客户端调用webService在客户端调用...

    webService客户端调用服务端传对象参数

    这个工程详细的介绍了webService服务客户端如何调用简单和复杂的webService,其中就包括传递的参数是对象类型,返回数据是数组类型,还有最简单的基本类型。压缩包里还配置说明,清晰的说明webService的整个过程,对...

    cxf的webservice的客户端代码

    在这个“cxf的webservice的客户端代码”主题中,我们将深入探讨如何使用CXF框架来构建一个能够与Web服务交互的客户端。 首先,创建CXF Web服务客户端的核心在于理解服务代理的生成。CXF提供了WSDL2Java工具,可以从...

    WebService开发客户端 cxf方式

    本篇文章将详细探讨如何使用CXF框架来开发WebService客户端。 一、CXF简介 CXF是一个开源的Java框架,它支持构建和部署SOAP(简单对象访问协议)和RESTful(Representational State Transfer)Web服务。CXF提供了...

    webService通用客户端测试工具

    在本场景中,"webService通用客户端测试工具"是针对服务消费者端设计的,用于验证和调试Web服务功能的实用工具。 Web服务的实现通常遵循SOAP(Simple Object Access Protocol)或REST(Representational State ...

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

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

    使用webservice实现客户端与服务器通信,

    Web服务(WebService)是一种基于网络的、分布式的模块化组件,允许不同系统之间的应用程序通过互联网进行交互。在本示例中,“使用webservice实现客户端与服务器通信”是一个典型的跨平台通信场景,它涉及到两个...

    Eclipse+WebService服务端客户端开发

    Eclipse开发WebService服务端实例。开发客户端代码。超级简单易懂的实例。

    WebService客户端调用WebService服务示例代码——java

    WebService客户端调用WebService服务示例代码,java代码,纯手工,包括直接httpClient直接发送Saop报文调用和利用wsimport -keep 生成客户端代码后调用两种方式的示例。因涉及商务账户密码隐私,因此代码中的有些账号...

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

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

    C# WebService 客户端 服务器 Json

    本主题聚焦于C#中的WebService客户端和服务器的交互,以及如何利用Json进行数据交换。Json(JavaScript Object Notation)是一种轻量级的数据交换格式,因其易读性和易于编写而被广泛应用。 一、C# WebService简介 ...

    webservice客户端jar.rar

    在这个案例中,"webservice客户端jar.rar" 是一个包含Java类库的压缩包,专为调用不同方式发布的Web服务接口设计。 1. **万能WebService接口客户端**: 这个jar包被称为“万能”,意味着它可以与多种方式发布的Web...

    webservice客户端client,made by .net

    在本案例中,"webservice客户端client,made by .net"是一个使用Microsoft的.NET Framework开发的Web服务客户端工具。这个客户端使得开发者能够便捷地与Web服务进行交互,测试和调用Web服务提供的各种功能。 首先,...

    C#.NET WebService 客户端+服务器

    本文将深入探讨"C#.NET WebService 客户端+服务器"的主题,介绍如何创建和调用Web服务,以及Web服务的三种访问方式。 首先,Web服务是一种基于标准协议(如SOAP和HTTP)的平台无关的通信机制,允许不同系统的应用...

    webservice项目客户端和服务端

    在这个项目中,我们关注的是WebService客户端和服务端的实现,特别是使用了Axis2框架。 Axis2是Apache软件基金会开发的一个开放源码的Web服务平台,用于构建和部署Web服务。它提供了高级的消息处理机制和多种协议...

    webservice xfire 客户端调用实现

    本篇文章将深入探讨如何使用XFire客户端调用Web服务,以及对象传递在Web服务开发中的应用。 首先,理解Web服务的基本概念至关重要。Web服务采用标准的协议如SOAP(Simple Object Access Protocol)进行通信,XML...

    Java生成WebService客户端代码操作步骤.txt

    Java开发生生WebService客户端代码操作步骤 Java开发生生WebService客户端代码操作步骤 Java开发生生WebService客户端代码操作步骤

    soapui生成webservice客户端代码

    soapui生成webservice客户端代码,比较详细的讲解了配置,以及生成客户端代码的步骤

    webservice 客户端自动生成工具

    WebService客户端是调用这些服务的应用程序部分,而"WebService客户端自动生成工具"则是帮助开发者快速创建与WebService交互的代码的工具。在这种情况下,我们讨论的是一个使用Axis1.4批处理脚本来实现这个功能的...

Global site tag (gtag.js) - Google Analytics