`
waterdh
  • 浏览: 96593 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

使用Xfire从WSDL生成客户端

    博客分类:
  • Java
阅读更多


从WSDL生成客户端和服务端

原文地址:

http://xfire.codehaus.org/Client+and+Server+Stub+Generation+from+WSDL

这片导航将一步一步地引导你为一个服务创建客户端.这个过程还同样适用于创建服务端.
完整的Example可以在distribution版本的"examples/geoip-client"文件夹中找到

限制

生成中有几个限制点需要注意

需要java 5.0环境,因为其使用了JSR 181 规范

不支持RPC/Encoding


生成客户端/服务端
Ant Task

我们将要使用的这个webservice获取一个ip地址,返回给我们一个国家的名称。生成客户端十分简单,这里有个build file的例子用于运行Xfire中的wsgen task。

xml 代码
  1. < taskdef   name = "wsgen"   classname = "org.codehaus.xfire.gen.WsGenTask"     
  2.       classpathref = "maven.compile.classpath" />   
  3.   
  4. < wsgen   outputDirectory = "${basedir}/target/generated-source"   
  5.    wsdl = "${basedir}/src/wsdl/geoip.wsdl"   package = "net.webservicex.geoip.jaxb"   overwrite = "true" />   


配置

命令行:
你还可以从命令行来运行WsGen(如果需要绑定jaxb,xmlbeans,你需要相关的jar文件),使用如下的脚本:

script 代码
  1. gpath=xfire- all -1.2-SNAPSHOT.jar:ant-1.6.5.jar:jaxb-api-2.0EA3.jar:stax-api-1.0.1.jar:jdom-1.0.jar:jaxb-impl-2.0EA3.jar\   
  2. :jaxb-xjc-2.0-ea3.jar:wstx-asl-2.9.3.jar:commons-logging-1.0.4.jar:activation-1.1.jar:wsdl4j-1.5.2.jar:XmlSchema-1.0.3.jar:xfire-jsr181-api-1.0-M1.jar;   
  3.   
  4. java -cp $gpath org.codehaus.xfire.gen.WsGen -wsdl http://localhost:8080/xfire/services/Bookservice?wsdl -o . -p pl.tomeks.client -overwrite  true   


你可以指定下面的参数:
-wsdl        : wsdl file的路径,可以是有效的URL地址 ( can be any valid url )
                 
-o             : 生成类的输出文件夹

-package   : 客户端代码存放的包

-binding    : 绑定使用( jaxb 或者 xmlbeans )

-overwrite: 允许覆盖已有的生成类文件(没有这个选项,则不会覆盖)


使用客户端

现在使用该客户端相当简单

java 代码
  1. package  net.webservicex.geoip;   
  2.   
  3. import  net.webservicex.GetGeoIP;   
  4. import  net.webservicex.geoip.jaxb.GeoIPServiceClient;   
  5. import  net.webservicex.geoip.jaxb.GeoIPServiceSoap;   
  6. import  junit.framework.TestCase;   
  7.   
  8. public   class  GeoIPClientTest  extends  TestCase   
  9. {   
  10.      public   void  testClient()  throws  Exception   
  11.     {   
  12.         GeoIPServiceClient service =  new  GeoIPServiceClient();   
  13.         GeoIPServiceSoap geoIPClient = service.getGeoIPServiceSoap();   
  14.            
  15.         System.out.println( "The country is: "  +    
  16.                            geoIPClient.getGeoIP( "216.73.126.120" ).getCountryName());   
  17.     }   
  18. }   
  19.   
  20.     
  21.   



你会发现 GeoIPImpl class也被生成了,如果你正在使用客户端,你不能删除它,因为它含有用来生成客户端的注释。Impl class 和wsdl中的<binding></binding>相符,它包含soap绑定信息。
使用如下的代码,你可以为客户端增加新的handlers 或者设置属性

java 代码
  1. Client client = Client.getInstance(geoIPClient);   
  2. client.setProperty(Channel.USERNAME,  "test" );   
  3. client.setProperty(Channel.PASSWORD,  "test" );   
  4. client.addInHandler( new  DOMOutHandler());   

XMLBeans 客户端/服务 生成
你可以使用XMLBeans 作为绑定来替代JAXB2.0.
简单地在task中设置绑定参数

xml 代码
  1. < wsgen   outputDirectory = "target/services"   
  2.    wsdl = "${basedir}/src/wsdl/echoW.wsdl"   
  3.    package = "com.acme.echo"   
  4.    binding = "xmlbeans"    overwrite = "true"    />   


请注意,你需要先生成该wsdl的XMLBeans ,然后把它的jar包放到wsgen-task的classpath下面。
如果你忘记了这步,你会看到
NullPointerException.


分享到:
评论
2 楼 waterdh 2010-08-04  
谁这么无聊弄我的博客
1 楼 kaowww153 2010-08-02  
这页面也太牛了吧

相关推荐

    xfire根据WSDL生成客户端代码

    使用XFire根据WSDL生成客户端代码,可以大大简化开发过程,因为它自动生成了与服务接口对应的Java类和代理。以下是具体步骤: 1. **安装和配置XFire**:首先,确保已经下载并安装了XFire库。你可以通过Maven或...

    xfire 插件 wsdl生成

    2. **配置XFire**:配置XFire实例,指定服务接口和实现,以及WSDL生成的选项,比如服务命名、端点地址等。 3. **生成WSDL**:使用XFire提供的API或者命令行工具,根据配置生成WSDL文件。生成的WSDL会描述服务的接口...

    xfire客户端生成

    生成XFire客户端的过程主要是通过反向工程从Web服务的WSDL(Web Service Description Language)文件中自动生成Java客户端代码。WSDL文件定义了Web服务的接口、消息格式、操作和地址等信息。以下是一般步骤: 1. **...

    WebService经典24篇网文汇总,包含axis2_Xfire搭建_WSDL详解_自动生成客户端和WSDL等.rar

    WebService经典24篇网文汇总,包含axis2_Xfire搭建_WSDL详解_自动生成客户端和WSDL等,自己找了好久的内容; 都是自己学习过程中网络的知识,找了很久,里边有一些自己的标记,如果发现chm内容是空白,注意看一下,其实是...

    使用xfire开发webservice的客户端需要的完整jar包

    总结来说,使用Xfire开发Web服务客户端涉及导入必要的jar包、配置服务信息、生成代理类以及编写调用代码。虽然Xfire已不再更新,但其简单易用的特点使其在某些场景下依然具有价值。对于新项目,推荐使用更现代的框架...

    xfire webservice wsdl 文件中字段名称

    3. **自定义WSDL生成器**:如果你的场景比较特殊,可以创建自定义的WSDLGenerator实现,覆盖XFire默认的行为,以控制字段名称的生成。 4. **使用XML Schema(XSD)**:如果字段涉及的数据类型较复杂,可以在WSDL...

    xfire接口程序,包含xfire服务端和axis客户端

    它能自动生成客户端代理类,这些类可以直接调用远程服务的方法,就像调用本地方法一样,极大地降低了客户端开发的复杂性。 这个压缩包文件"xfireDemo"包含了实现xfire服务端和axis客户端所需的所有组件和jar包。...

    XFire Java Web Service 客户端

    本文将深入探讨XFire Java Web Service客户端的使用和相关知识点。 一、XFire简介 XFire是Apache CXF项目的一个前身,它是一款高效的、开源的Java Web Service实现。XFire的目标是提供一个轻量级、快速且易于使用...

    Xfire 开发webservice与客户端调用教程与实例

    然后,实现这个接口并部署到服务器,Xfire会自动生成相应的WSDL文件,供客户端调用。 **3. 部署Web服务** Xfire允许你将Web服务部署到任何Servlet容器,如Tomcat。只需要将Xfire的库添加到项目的类路径中,然后在...

    webservice xfire 客户端调用实现

    2. 生成客户端代码:使用XFire的wsdl2java工具生成客户端代理类。 3. 创建客户端实例:在Java代码中创建代理类的实例,通常需要指定服务的地址。 4. 调用服务方法:通过代理类的方法调用远程服务,传递必要的参数。 ...

    xfire客户端包含所需要的jar

    标题中的“xfire客户端包含所需要的jar”指的是,为了使用XFire客户端功能,你需要一系列特定的Java档案(jar)文件。这些jar文件包含了实现XFire功能的类库和资源,包括XML解析器、SOAP处理模块、HTTP传输层以及与...

    使用Xfire创建Web service和客户端使用的视频

    - 使用MyEclipse的Web服务消费者向导,根据WSDL生成客户端代理类。 - 在客户端代码中,实例化代理类并调用服务方法,实现与Web服务的交互。 8. **JSP整合** - 如果需要在Web前端展示服务结果,可以使用JSP(Java...

    Xfire客户端调用webservice jar包

    3. 使用相应的库(如CXF或axis2)从WSDL生成客户端代理类。 4. 在Xfire客户端代码中实例化并调用生成的代理类,传递必要的参数以执行Web服务操作。 5. 处理返回的结果,将数据展示或用于客户端逻辑。 在实际开发中...

    用xfire的Eclipse_Plugin生成web服务的客户端.

    1. **自动生成Web服务客户端代码**:这是插件的核心功能之一,通过解析WSDL(Web Services Description Language)文件,插件能够自动为指定的Web服务生成客户端存根代码,极大地简化了客户端开发过程。 2. **简化...

    使用Xfire构建JAVA的webService全过程(从服务端到客户端)

    1. **生成客户端代理类**:使用Xfire的工具(如`xfire-gen`)或在线工具,根据服务的WSDL(Web Service Description Language)文件生成客户端代理类。 2. **编写客户端代码**:实例化代理类并调用服务方法。 ```...

    Webservice使用xfire发布及客户端调用

    - XFire提供了一个`ClientProxyFactoryBean`,用于根据WSDL生成一个Java客户端代理类。这个代理类可以像调用本地方法一样调用Web服务。 - 创建客户端代理后,实例化这个类并设置必要的连接参数(如服务URL),然后...

    xfire客户端eclipse插件

    XFire客户端Eclipse插件是开发人员在使用Eclipse IDE时用于集成XFire服务框架的工具。XFire,现在已被Apache CXF所吸收,是一款强大的Java Web服务框架,旨在简化创建和部署Web服务的过程。这款插件使得在Eclipse...

    Java使用XFire调用WebService接口

    在使用XFire时,通常需要WSDL文件来生成客户端代理类,这些类提供了调用Web服务的方法。 3. **XFire客户端API**:XFire提供了客户端API,可以自动生成客户端代码,这些代码包含了调用Web服务的必要方法。开发者只...

    xfire访问webservice客户端用到的jar包

    - **解析WSDL**:使用XFire提供的工具,如`wsdl2java`,从WSDL文件生成Java客户端 stubs。 - **初始化客户端**:实例化客户端代理,通常是一个实现了服务接口的类。 - **配置传输机制**:设置HTTP或HTTPS等传输...

    eclipse 使用xfire开发webservices server

    6. **生成WSDL**:使用XFire提供的工具,可以自动从服务接口生成WSDL文件。这一步通常涉及调用特定的API方法,例如`org.codehaus.xfire.service.ServiceFactory.createServiceDefinition()`。 7. **部署到服务器**...

Global site tag (gtag.js) - Google Analytics