`
hbxflihua
  • 浏览: 682710 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

xfire中自定义参数名

 
阅读更多

近期在做多个应用交互系统,其中数据交互采用了webservice的方式,说到webservice项目中不得不用到xfire这个框架,有了它我们几乎不用写代码,就可以很快速的创建自己的webservice
但在使用的过程中遇到一些小细节上的问题:

就是在写webservice接口的时候,通常大家都会定义一些方法的参数,但是根据xfirexsd文件描述情况来看,它的参数命名通常是in0,in1等等,依次类推,很不友好,能不能对参数名称进行自定义操作呢。这个当然是可以的。

按照XFire生成的WSDL文档中接口参数名极不友好:


<xsd:complexType>
  <xsd:sequence>
  <xsd:element maxOccurs="1" minOccurs="1" name="in0" nillable="true" type="xsd:string" /> 
  <xsd:element maxOccurs="1" minOccurs="1" name="in1" nillable="true" type="xsd:string" /> 
  <xsd:element maxOccurs="1" minOccurs="1" name="in2" nillable="true" type="xsd:string" /> 
  </xsd:sequence>
  </xsd:complexType>

 

大家都知道,作为一个合格的程序员,在写代码的时候方法参数命名什么的要尽量做到见名知意,显然他这种风格是不适合我们的。因此我们要创新,这就有了下文。

如何自动将in0in1替换成友好的参数名称呢 ?
方法如下:
 
在与接口类同一包下面建一个接口类名称.aegis.xml 的文件,示例如下:

<?xml version="1.0" encoding="UTF-8"?>
<mappings>   
    <mapping>   
       <method name="getTRecords">   
           <parameter index="0"  mappedName="tname" /> 
           <parameter index="1"  mappedName="insertdate" /> 
           <parameter index="2"  mappedName="orgno" />  
       </method> 
       <method name="getCRecords">   
           <parameter index="0"  mappedName="tname" /> 
           <parameter index="1"  mappedName="cname" /> 
           <parameter index="2"  mappedName="orgno" />  
       </method>        
   </mapping>   
</mappings> 

 

注意:
                method 的 name
为接口中方法名称
                parameter 的 index
为方法中参数顺序,从0开始
                parameter 的 mappedName
为替换后的名称
               
XML文件的位置一定要与你定义的webservice的接口位于同一个目录(包下)否则不起作用

 

接口如下(供参考):

package com.hzunitech.inf;
//Generated by MyEclipse

public interface ICsvTblRecord {
	
	/**
	 * 获取表中对应列和记录,并以CSV格式返回
	 * @param tname 表名,不区分大小写
	 * @param orgId 组织id
	 * @param insertDate 添加日期
	 * @return 该表数据
	 */
	public String getTRecords(String tname,String insertdate,String orgno);
	
	/**
	 * 获取对应表中某一列的记录,并以csv格式返回
	 * @param tname 表名
	 * @param orgId 组织id
	 * @param cname 列名
	 * @return 该列数据
	 */
	public String getCRecords(String tname,String cname,String orgno);
	
}

 

我用.net的winForm程序进行测试,参数就是在该xml文件中配置的名称。 

 

 

分享到:
评论
4 楼 hua758209 2011-12-05  
找到原因了,是你那个<strong>标签引起的,谢谢
3 楼 hua758209 2011-12-05  
我按照这个写了个貌似不管用,不知道问题出在哪,还有你这个配置文件我迷糊的了那个<strong>是包住那个声明的吗
2 楼 hbxflihua 2011-11-15  
友好是指传入的参数有多个时,xfire以默认方式命名如in0,in1,in2等,这种方式对于调用接口的客户端来说不能做到顾名思义,难以辨认。
返回值不存在多个的情况,只有简单与复杂之分。
1 楼 yonghuuser 2011-11-08  
返回值呢?怎么友好?

相关推荐

    xfire webservice wsdl 文件中字段名称

    字段名称通常对应于Java类的属性名,这些类代表了服务操作的输入和输出参数。如果需要改变字段名称,有以下几种策略: 1. **修改Java源代码**:最直接的方法是修改服务类的属性名。这将自动更新WSDL文件中的相应...

    XFire令WebService如此简单

    在本文中,我们将探讨如何使用XFire来构建一个简单的WebService。 首先,我们需要在`web.xml`中配置XFire。这是Servlet容器(如Tomcat)的部署描述符,我们在此添加XFire的Servlet。这段配置告诉服务器在访问特定...

    webservice数据传输方式Xfire

    5. **拦截器和插件**:Xfire的拦截器机制允许开发者在服务调用前后添加自定义逻辑,而丰富的插件系统则扩展了其功能,如安全、日志等。 在实际应用中,使用Xfire部署Web服务的步骤通常包括以下几点: 1. **安装和...

    XFire-WebService 开发基础教程

    - 使用MyEclipse提供的Web Service Explorer测试Web服务,从列表中选择`Launch`,输入参数并发送请求,查看返回结果。 这个教程通过一个简单的Hello World示例,介绍了使用XFire在MyEclipse中开发Web服务的基本...

    xfire 1.2.6 API帮助文档.rar

    Xfire 1.2.6 API帮助文档详尽地列出了所有可用的API接口、参数说明、返回值及示例代码,是开发者学习和应用API的关键参考资料。通过阅读和理解这份文档,开发者可以迅速上手,高效地开发出与Xfire平台集成的应用。 ...

    使用 .NET 调用有自定义 Handler 验证的 XFire Web 服务

    这篇博客可能详细解释了如何在 .NET 开发环境中,通过编程方式调用一个具有自定义身份验证机制的 XFire Web 服务。XFire 是一款已不再更新的游戏社交平台,但这里可能是以它为例来探讨 Web 服务的交互。 首先,.NET...

    安装 maven XFire插件

    - 用户可以自定义本地仓库的位置,默认情况下位于用户的主目录下的`.m2`文件夹中,如:`C:\Documents and Settings\Administrator\.m2`。 ### Eclipse中安装XFire插件 XFire是一个基于Java的轻量级Web服务框架,...

    webservice xfire 客户端调用实现

    这意味着你可以直接在方法参数或返回值中使用自定义的Java对象,XFire会自动处理对象到XML的转换,大大提高了开发效率。 以下是一般的步骤来实现XFire客户端调用: 1. 获取WSDL:通过URL获取Web服务的WSDL文件。 2...

    spring xfire

    XFire的工作流程包括一系列处理阶段,如传输、预转发、转发、策略实施、用户信息处理、预调用和服务调用等,每个阶段都可以插入自定义Handler来处理和转换消息。 集成Spring的优点在于能够实现服务的无缝集成和管理...

    java xfire调用webservice

    Java XFire调用WebService是一种在Java应用程序中与远程服务交互的方式。XFire是Apache CXF项目的前身,它是一个用于构建和开发Web服务的框架。在本文中,我们将深入探讨如何使用Java XFire来调用本地及远程的...

    WebService--xfire中对集合的配置和操作

    这篇博客“WebService--xfire中对集合的配置和操作”可能主要讨论了如何在XFire中处理集合类型的数据,包括数组、List或Set等。 在XFire中,配置是关键部分,它涉及到服务的定义、绑定以及数据的序列化和反序列化。...

    web service xfire 开发包及api

    通过以上知识点,开发者可以构建与Xfire服务交互的应用,比如创建一个游戏社区,展示玩家的游戏活动,或者构建自定义的游戏统计工具。同时,对于Web服务的深入理解和实践,也可以帮助开发者掌握更广泛的Web开发技能...

    xfire webservice 完整实例下载

    4. **拦截器和插件**:XFire允许开发者使用拦截器来添加自定义行为,如安全检查、日志记录等。此外,丰富的插件体系使得扩展功能变得简单。 5. **测试工具**:内置的客户端测试工具可以帮助开发者方便地测试Web服务...

    xfire集成spring开发的一个数据库登陆验证实例,包含SSL安全机制

    在IT行业中,尤其是在Web服务开发领域,Xfire和Spring框架的整合是常见的一种技术实践。Xfire是一款基于Java的Web服务实现,它提供了强大的SOAP和RESTful服务支持,而Spring框架则是Java企业级应用的事实标准,它...

    XFire开发实践记录-包括环境准备与复杂对象的配置方法

    在服务端,如果需要传递复杂的对象,比如自定义的JavaBean,我们需要在`Idemo`和`DemoImpl`相同的包内创建一个名为`Idemo.aegis.xml`的文件。这个XML文件用于映射方法参数和返回类型,例如,定义一个接受`Person`...

    xfire1.2.6源码

    深入研究xfire1.2.6的源代码,我们可以学习到如何处理Web服务中的日期时间类型,以及如何优化框架的健壮性和稳定性。这对于理解和改进类似问题,或者在自己的项目中实现类似功能都非常有帮助。此外,分析源代码还能...

    xfire测试项目(包括复杂数据类型)

    包括两个项目 服务器项目和.../*自定义类型*/ public UserBean getUser(UserBean a); public List&lt;UserBean&gt; getUserList(List&lt;UserBean&gt; a); public List&lt;List&lt;UserBean&gt;&gt; getUserListOfList(List&lt;List&lt;UserBean&gt;&gt; a);

    xfire实现webservice的例子

    在Java世界中,XFire是早期流行的Web服务框架,它简化了创建和消费Web服务的过程。XFire利用Java注解(Annotations)和XML配置文件,使得开发者可以快速地将普通Java类转换为Web服务接口。 ### XFire简介 XFire是...

    Android在Android远程上传以及下载图片---XFire框架.zip

    XFire允许自定义OkHttp实例,所以可以灵活调整这些参数。 8. **集成与配置** 集成XFire框架,需要在项目中添加依赖,通常在`build.gradle`文件中添加Maven仓库和依赖项,然后通过Retrofit构建网络服务接口。 总结...

Global site tag (gtag.js) - Google Analytics