- 浏览: 271012 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
tonytony3:
THANK YOU
Android多级树形菜单的实现 -
haiyang08101:
deleteNumber = "421f481e-7 ...
java对xml文件做增删改查 -
求求你帮帮我:
怎么把我的空格也当成节点处理了?
java对xml文件做增删改查 -
求求你帮帮我:
deleteNumber = "421f481e-7 ...
java对xml文件做增删改查 -
lpj13579:
多谢分享,学习学习
高仿小米盒子UI效果实现
Xml代码
1.<?xml version="1.0" encoding="UTF-8"?>
2.<mappings>
3. <mapping>
4. <method name="getDutyPlanByCondition">
5. <parameter index="0" mappedName="dutyPlanId" />
6. <parameter index="1" mappedName="organizationId" />
7. <parameter index="2" mappedName="dutyUserId" />
8. <parameter index="3" mappedName="tabulateUserId" />
9. <parameter index="4" mappedName="dictRoadSectionId" />
10. <parameter index="5" mappedName="assessorUserId" />
11. <parameter index="6" mappedName="dutyDate" />
12. <parameter index="7" mappedName="startTime" />
13. <parameter index="8" mappedName="stopTime" />
14. <parameter index="9" mappedName="startPoint" />
15. <parameter index="10" mappedName="stopPoint" />
16. <parameter index="11" mappedName="xh" />
17. <parameter index="12" mappedName="tabulateDate" />
18. <parameter index="13" mappedName="isAudit" />
19. <parameter index="14" mappedName="auditingDate" />
20. <parameter index="15" mappedName="isPreAudit" />
21. <return-type
22. componentType="com.boco.itms.ws.value.duty.DutyPlanValue" />
23. </method>
24. </mapping>
25.</mappings>
<?xml version="1.0" encoding="UTF-8"?>
<mappings>
<mapping>
<method name="getDutyPlanByCondition">
<parameter index="0" mappedName="dutyPlanId" />
<parameter index="1" mappedName="organizationId" />
<parameter index="2" mappedName="dutyUserId" />
<parameter index="3" mappedName="tabulateUserId" />
<parameter index="4" mappedName="dictRoadSectionId" />
<parameter index="5" mappedName="assessorUserId" />
<parameter index="6" mappedName="dutyDate" />
<parameter index="7" mappedName="startTime" />
<parameter index="8" mappedName="stopTime" />
<parameter index="9" mappedName="startPoint" />
<parameter index="10" mappedName="stopPoint" />
<parameter index="11" mappedName="xh" />
<parameter index="12" mappedName="tabulateDate" />
<parameter index="13" mappedName="isAudit" />
<parameter index="14" mappedName="auditingDate" />
<parameter index="15" mappedName="isPreAudit" />
<return-type
componentType="com.boco.itms.ws.value.duty.DutyPlanValue" />
</method>
</mapping>
</mappings>
很普通的一个配置文件。
"getDutyPlanByCondition”这个方法总共有16个参数,默认情况下,客户端自动生成的代码中,参数形如:arg0,arg1...arg15,极不容易将每个参数及顺序填写正确,故配置以上文件,将wsdl中的参数赋予有意义的单词。
<parameter index="0" mappedName="dutyPlanId" />
<parameter index="1" mappedName="organizationId" />
......
编写如此的配置实在令人有点不耐烦,想点办法,自动生成?
OK,观察一下有什么规律:
1.<method name="getDutyPlanByCondition"> 方法名,反射呗。
2.<return-type componentType="com.boco.itms.ws.value.duty.DutyPlanValue" />返回值,反射呗。
3.xml文件名,反射呗。
通过反射,这些信息我们都能取到,再组织一下结构,循环一下,生成配置文件,小菜一碟!
但还有个东西别忘了,参数名(不是参数类型)。
Java代码
1.public void save(int id , String name){ ... }
public void save(int id , String name){ ... }
以上代码我们通过反射,能取到参数中的int,String,但就是取不到id,name。
别问为什么要取到参数名,总有用的上的时候,例如这篇文章……
先找个包:axis2-kernel-1.4.1.jar(明明是用Xfire,还是得拖个axis下水啊)
直接上代码:
Java代码
1.ChainedParamReader paramReader = new ChainedParamReader(clazz);
2.Method[] methods = clazz.getMethods();
3.for(int i=0 ; i<methods.length ; i++){
4. String[] params = paramReader.getParameterNames(methods[i]);
5.}
ChainedParamReader paramReader = new ChainedParamReader(clazz);
Method[] methods = clazz.getMethods();
for(int i=0 ; i<methods.length ; i++){
String[] params = paramReader.getParameterNames(methods[i]);
}
OK,已经取到{id , name}了,该干嘛干嘛了 .
发表评论
-
Android 三大图片加载框架比较
2016-11-30 10:31 10781.哪三大图片加载框架? 1) Pi ... -
Java Calendar 类的时间操作
2016-06-01 21:02 661ava Calendar 类时间操作,这也许是创建日历和管理 ... -
获取电脑ip,所在省份城市
2014-08-27 09:45 676调用了腾讯的ip接口(http://fw.qq.com ... -
获取Android签名证书的sha1值
2014-08-23 23:14 657前言:今天开始研 ... -
java中Keytool的使用总结
2014-08-23 22:40 557J2SDK提供了keytool命令行工具,可以根据指定的参数 ... -
Java基础——Java语法基础(3)
2014-06-19 10:13 565程序控制流程 1、顺序结构 按顺序执行 2、i ... -
Java基础——Java语法基础(1)
2014-06-19 10:11 796Java代码基本格式 Java ... -
android MD5校验码的生成与算法实现
2014-06-17 10:58 880在Java中,java.security.Mes ... -
java中的字符串分割函数 split
2014-06-06 15:01 688Java中的我们可以利用sp ... -
java对xml文件做增删改查
2014-06-04 20:40 1834package com.wss; import jav ... -
获取网络的json文件 Gson解析json文件
2013-11-07 16:21 522/** * 获取网络的json文件 * @pa ... -
Java获取文件类型Mime Type的各种方法
2013-09-16 15:46 1138使用 javax.activation.MimetypesF ... -
Java栈与堆
2013-06-20 22:18 9191. 栈(stack)与堆(heap)都 ... -
Android requires compiler compliance level 5.0 or 6.0. Found '1.7' instead.
2013-05-02 12:01 692解决Android requires compiler co ... -
java创建文件和目录
2013-04-25 10:30 599创建文件和目录的关键技术点如下: 1、File类的cr ... -
iava创建文件和目录
2013-04-24 19:42 792创建文件和目录的关键技术点如下: 1、File类的cr ... -
Java程序发送邮件的两种方法
2013-01-25 10:57 1867前一段时间我在博客中发表过Java接收解析邮件的程序 ... -
SharedPreferences保存数据
2013-01-24 15:09 882package com.test; import ja ... -
java 把logcat日志保存到SD里
2013-01-22 20:21 1029private void saveLogcat(){ ... -
Android开发系列:查看LogCat日志
2013-01-19 13:06 3441LogCat日志 1. Window & ...
相关推荐
XFire的一个特点是其对Aegis绑定的支持,这使得它可以处理非XML数据类型,提高了与遗留系统的兼容性。 描述中提到的“客户端调用分析”和“webservice万能客户端”,意味着这个压缩包可能包含了一份关于如何使用...
5. **生成WSDL**:XFire会自动生成WSDL(Web Services Description Language)文件,它是Web服务的元数据,描述了服务的接口、操作和绑定。 6. **测试服务**:你可以使用MyEclipse的内置Web服务测试工具或者通过...
它的客户端和服务器端代码都可以通过XFire自动生成,大大提升了开发效率。 在XFire的配置中,需要特别注意的是services.xml文件,这是用于定义服务接口的核心配置文件。它通常位于META-INF目录下,这个目录应该放在...
2. **xfire-aegis-binding.jar**:Aegis绑定器提供了将Java对象映射到XML的能力,反之亦然。这对于在Web服务中传输复杂数据类型非常有用。 3. **xfire-xmlbeans-binding.jar**:XMLBeans是一个强大的Java库,能够将...
10. **xfire-generator**: 代码生成工具,可以根据WSDL文件自动生成Java客户端和服务端代码,方便快速开发。 以上这些jar包共同构成了xfire框架的基础,它们相互协作,为开发者提供了强大而全面的Web服务开发环境。...
3. **配置服务**:在Spring配置文件(如`UserService.aegis.xml`)中,定义服务的bean以及使用的序列化策略(如Aegis)。 ```xml <bean id="userService" class="com.example.UserService"> <xfire:service...
2. **Aegis Binding**:Aegis是xfire中的数据绑定模块,负责将Java对象转换为XML消息,反之亦然。它支持基本数据类型、集合、数组、枚举以及复杂对象的转换。 3. **Stax**:xfire使用StAX(Streaming API for XML)...
- `xfire-generator.jar`:代码生成工具,可以从WSDL文件自动生成Java客户端和服务端代码。 - `xfire-jaxb-binding.jar`:JAXB绑定器,用于XML/Java对象之间的转换。 - `xfire-jaxws.jar`:JAX-WS兼容性层,提供...
2. **xfire-aegis-binding.jar**:Aegis绑定模块,提供数据类型到XML的映射,反之亦然。 3. **xfire-annotations.jar**:支持使用Java注解来定义Web服务接口和服务实现。 4. **xfire-client.jar**:客户端API,包括...
7. **WSDL生成和使用**: 学习如何通过Xfire自动生成WSDL文件,这是一个描述服务接口、操作和数据类型的XML文档,对服务消费者来说至关重要。 8. **异常处理和安全性**: 了解如何在Xfire中处理异常,以及如何通过...
在pom.xml或build.gradle文件中添加XFire的相关依赖。 4. **编写服务接口和实现**:使用Java注解定义服务接口,比如使用`@WebService`标记接口。然后创建接口的实现类,这里可以使用JAXB注解将Java对象映射到XML。 ...
XFire提供了高效的SOAP处理、WSDL生成以及XML数据绑定等功能,使得开发人员能够快速、方便地实现Web服务的创建、发布和调用。 在“XFire的所有jar包”这个压缩包中,包含了XFire运行和开发所需的各种核心库文件。...
3. **动态代理**:XFire支持动态生成客户端代理,这意味着你无需手动编写客户端代码,只需提供服务的WSDL地址,XFire就能自动生成对应的客户端代理类。 4. **集成性**:XFire可以很好地与Spring框架集成,使得在...
开发者可以通过定义一个普通的Java接口,并使用特定的注解(如@WsMethod)来标记服务方法,然后XFire会自动生成相应的WSDL(Web Service Description Language)文件,客户端可以通过这个WSDL来调用服务。...
4. **动态代码生成**:基于JAXB(Java Architecture for XML Binding),XFire可以从WSDL文件动态生成Java客户端和服务器端代码。 5. **Aegis绑定**:XFire独有的Aegis绑定允许开发者使用非XML Java对象作为服务的...
1. xfire-all.jar:这是xfire的核心库,包含了大部分xfire的功能,包括核心的Web服务引擎、XML处理和协议支持等。 2. xfire-aegis.jar:Aegis绑定提供了将Java对象直接映射到SOAP消息的能力,使得数据交换更为简单...
10. **xfire-aegis-1.2.6.jar**:Aegis是XFire的一个子项目,提供了将Java对象映射到XML的工具,支持简单类型和复杂类型的映射。 11. **wsdl4j-1.5.2.jar**:WSDL4J是一个用于处理WSDL(Web Services Description ...
- **xfire-aegis-1.2.6.jar**:Aegis绑定是XFire的一种数据绑定机制,能够将Java对象直接映射到XML,简化了数据交换的过程。 - **xfire-generator-1.2.6.jar**:代码生成器,可以自动生成基于WSDL的服务端和客户端...
XFire可以自动生成WSDL文件,或者根据已有的WSDL文件生成Java类。 3. **Stubs and Skeletons**: XFire自动生成客户端和服务端的存根代码,使得调用Web服务如同调用本地方法一样简单。 4. **Transport**: XFire支持...
2. 消息处理和序列化:xfire-aegis.jar和xfire-xmlbeans.jar等,提供了不同的XML序列化策略,Aegis支持基本类型和自定义类型的转换,而XmlBeans则依赖于XML Schema进行对象绑定。 3. SOAP支持:xfire-soap.jar,...