Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1899836
  • 博文数量: 606
  • 博客积分: 9991
  • 博客等级: 中将
  • 技术积分: 5725
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-17 19:07
文章分类

全部博文(606)

文章存档

2011年(10)

2010年(67)

2009年(155)

2008年(386)

分类: Java

2009-10-28 10:49:41

   利用xfire生成web服务客户端的方法有多种,Eclipse PluginXFireWSDL->Code generator提供了Eclipse支持,它需要Eclipse 3.2Java 5。这里我们用Eclipse Plugin根据wsdl文件地址生成客户端代码,而我们只需要编写几行代码即可实现调用web服务。下面就是方法步骤:
第一步,安装插件。
        打开EclipseHelp菜单,选择”Software Updates”,然后再选择”Find and Install.”
        选择"Search for new features to install",然后点击Next
        选择"Create New Remote Site" name中输入"XFire",在eclipse update site中输入
        选择OK
        选择Finish
    注意完成上述操作后,eclipse要下载和安装插件,时间长短要视网速而定,请耐心等待,安装完成时还要重启eclipse
第二步,使用插件。
    首先新建一个java项目XFireProject,然后依次选择菜单File->New->Other ,选择XFire文件夹下的Code generation from WSDL document,打开代码生成向导,如图所示。

xifre生成客户端向导

      WSDL的地址栏填入要调用WSDL的URL地址Output directory栏中点浏览按钮,选择我们刚才新建的项目XFireProject,这两项是必填的。可选项中,package一栏可以选已经存在的包名(最好不填写),如果不填这一项,代码生成器会在wsdl目标命名空间的基础上创建一个。
    完成后,可以看到项目中多了XFire类库,还有package下面的生成的一些类。

    所有的配置都已经完成,最后就是编写代码完成调用。代码如下:   

4.最后写个测试程序就好。
import com.kuaff.xfire.samples.MathServiceClient;
import com.kuaff.xfire.samples.MathServicePortType;
 
public class Test {
    public static void main(String[] args) {
       MathServiceClient client = new MathServiceClient();
       MathServicePortType MathService = client.getMathServiceHttpPort();
       // 调用服务
       long result = MathService.add(1, 2);
       System.out.println("结果:" + result);
    }
}
 
当有参数传递时,
import test.HelloServiceClient;
import test.HelloServicePortType;
import test.ObjectFactory;
import test.User;
import javax.xml.namespace.QName;
 
 
 
 
public class TestAddress {
    public static void main(String[] args) {
       HelloServiceClient client = new HelloServiceClient();
       HelloServicePortType HelloService = client.getHelloServiceHttpPort();
      
//     当要传递参数时,调用ObjectFactory中的公用方法,而不用自己还要
       //new JAXBElement(new
//     QName("", "username"),String.class,"dfdfs");
       //直接调用factory.createUserUsername("dfdfs")返回JAXBElement类型
      
       ObjectFactory  factory=new ObjectFactory();
       User user=factory.createUser();
       user.setPassword(factory.createUserPassword("afdsafsd"));
       user.setUsername(factory.createUserUsername("dfdfs"));
      
       // 调用服务
       //由JAXBElement转化为String,调用getValue();
       System.out.println(HelloService.getUser(user).getUsername().getValue());
    }
}
 
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/pengchua/archive/2007/08/02/1722156.aspx

相关链接:

1. 使用XFire开发Web Service客户端完整入门教程

2. XFire 1.2.6手册()
3.
4.

阅读(1598) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~