- 浏览: 660255 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (141)
- java (58)
- SQL (7)
- java开源 (2)
- javascript (3)
- struts2 (2)
- oracle (6)
- junit (1)
- js报表 (1)
- jQuery (5)
- 插件安装 (1)
- myeclipse (1)
- xfire (1)
- weblogic (1)
- hibernate (6)
- loading (1)
- jbpm (3)
- 物语 (0)
- android (14)
- spring (20)
- BigDecimal (1)
- view (1)
- 总结 (2)
- application (1)
- Netty (5)
- aop (1)
- redis (7)
- double (1)
- restful (1)
- cache (3)
- profile (1)
- redisTemplate (1)
- poi (3)
- excel导出 (1)
- mysql (7)
- group (4)
- replication (4)
- proxysql (1)
- windows (1)
- version (1)
- mongodb (2)
- RocketMQ (1)
- MQ (1)
- RSA (1)
- 日志 (2)
- ip (1)
- socket (1)
- hibernate-validator (1)
- delayQueue (1)
- spring-retry (1)
- rabbitmq (3)
- httpclient (1)
- tools (1)
- 增量发布 (1)
- web (3)
- spring-boot (5)
- druid (2)
- pageHelper (1)
- freemarker (1)
- RequestMapping (1)
- 性能优化 (2)
- springBoot (1)
- docker (2)
- 安全 (0)
- 国际化 (3)
- websocket (1)
- stomp (1)
- shiro (1)
- 网络安全 (2)
- 锁 (1)
- logback (1)
最新评论
-
changerzhuo_319:
谢谢大佬, 查了一天了没解决
Spring-boot构建多模块依赖工程时,maven打包异常:程序包xxx不存在 -
迪伦少校:
spring越来越优秀的同时,也越来越复杂
spring核心技术(1) -
hbxflihua:
ivi13 写道这种方式会有个问题,假如有个商户的交易量特别大 ...
使用spring-retry实现支付系统异步通知 -
ivi13:
这种方式会有个问题,假如有个商户的交易量特别大,通知全部失败, ...
使用spring-retry实现支付系统异步通知 -
ckxlnd:
挺好的 有借鉴意义
重写DispatcherServlet获取springmvc 所有RequestMapping的url
近期在做多个应用交互系统,其中数据交互采用了webservice的方式,说到webservice项目中不得不用到xfire这个框架,有了它我们几乎不用写代码,就可以很快速的创建自己的webservice
但在使用的过程中遇到一些小细节上的问题:
就是在写webservice接口的时候,通常大家都会定义一些方法的参数,但是根据xfire的xsd文件描述情况来看,它的参数命名通常是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>
大家都知道,作为一个合格的程序员,在写代码的时候方法参数命名什么的要尽量做到见名知意,显然他这种风格是不适合我们的。因此我们要创新,这就有了下文。
如何自动将in0与in1替换成友好的参数名称呢 ?
方法如下:
在与接口类同一包下面建一个接口类名称.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的接口位于同一个目录(包下)否则不起作用
接口如下(供参考):
我用.net的winForm程序进行测试,参数就是在该xml文件中配置的名称。 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);
}
评论
返回值不存在多个的情况,只有简单与复杂之分。
发表评论
-
Spring Gateway 接口返回值脱敏
2023-10-20 09:55 1601package com.huatech.gateway.f ... -
logback 常用配置及说明
2020-05-28 15:41 491<?xml version="1.0& ... -
springboot中增强druid实现数据库账号密码加解密
2020-03-11 13:31 1279针对目前越来越严的安全等级要求,我们在做产品 ... -
java常用命令
2020-01-14 13:25 714# 1、查询java进程id jps -v ... -
poi excel导入工具类
2019-11-20 14:00 491poi excel导入工具类ImportUtil i ... -
通过spring-context创建可执行jar
2019-04-23 13:52 8881、新建一个maven工程; 2、pom.xml中 ... -
什么情况下Java程序会产生死锁?如何定位和修复死锁
2019-04-18 20:38 1233死锁是一种特定的程序状态,在实体之间,由于循环依赖导致彼此 ... -
反射机制和动态代理的原理
2019-04-13 14:02 1903反射机制是Java语言提供的一种基础功能,赋予程序在运行时 ... -
String、StringBuffer、StringBuilder的区别?
2019-04-13 10:00 653Java的基本类型有八种 ... -
强引用、软引用、弱引用、幻象引用有什么区别?具体使用场景是什么?
2019-04-12 15:10 668在 Java 语言中,除了原始数据类型的变量,其他 ... -
Exception与Error的区别?
2019-04-11 09:25 490Java语言在设计之初就 ... -
应用国际化(3)
2018-12-27 21:13 720前两篇介绍了应用国际化的注意事项和提示语国际化的简单实现。后 ... -
应用国际化(2)
2018-12-26 20:39 690上一篇介绍了应用国际化需要考虑的问题,本篇介绍后端如何实现 ... -
应用国际化(1)
2018-12-26 20:08 744最近在做数字资产交 ... -
性能优化实战-2
2018-09-28 10:15 1045我们在做架构设计的时候,会提到几个关键词:高性能、高 ... -
性能优化实战-1
2018-09-27 20:04 998系统优化大致可以分 ... -
rabbitmq批量处理
2018-04-08 17:35 9175我们通过spring-amqp操作rabbitmq是极其简 ... -
java进程CPU过高问题定位
2018-03-14 09:06 22151、top命令查看过高CPU的pid,命令:top ... -
spring-boot集成RabbitMQ
2018-01-16 16:38 1226RabbitMQ的安装不在此赘述,想了解的可以参考: ... -
重写DispatcherServlet获取springmvc 所有RequestMapping的url
2018-01-09 10:41 28171、重写DispatcherServlet i ...
相关推荐
包括两个项目 服务器项目和.../*自定义类型*/ public UserBean getUser(UserBean a); public List<UserBean> getUserList(List<UserBean> a); public List<List<UserBean>> getUserListOfList(List<List<UserBean>> a);
第1章 寻找grails之旅 1.1 java的困惑 1.2 webc2.0时代 1.3 java的力量 1.4 什么是grails 1.4.1 与java集成 ....... 3.2.1 mvc中的模型(m) ... 11.6 使用xfire创建soap服务 11.7 本章小结
在IN语句中传入一组参数值 11.7.4. 处理复杂类型的存储过程调用 12. 使用ORM工具进行数据访问 12.1. 简介 12.2. Hibernate 12.2.1. 资源管理 12.2.2. 在Spring容器中创建 SessionFactory 12.2.3. The ...
12.2.2. 在Spring的application context中创建 SessionFactory 12.2.3. HibernateTemplate 12.2.4. 不使用回调的基于Spring的DAO实现 12.2.5. 基于Hibernate3的原生API实现DAO 12.2.6. 编程式的事务划分 12.2.7. ...
6.4.1 定义事务参数 6.4.2 代理事务 6.4.3 在Spring 2.0里声明事务 6.4.4 定义注释驱动事务 6.5 小结 第7章 保护Spring 7.1 Spring Security介绍 7.2 验证用户身份 7.2.1 配置Provider Manager 7.2.2 根据...
6.4.1 定义事务参数 6.4.2 代理事务 6.4.3 在Spring 2.0里声明事务 6.4.4 定义注释驱动事务 6.5 小结 第7章 保护Spring 7.1 Spring Security介绍 7.2 验证用户身份 7.2.1 配置Provider Manager 7.2.2 根据...
6.4.1定义事务参数 6.4.2代理事务 6.4.3在spring2.0里声明事务 6.4.4定义注释驱动事务 6.5小结 第7章保护spring 7.1springsecurity介绍 7.2验证用户身份 7.2.1配置providermanager 7.2.2根据数据库验证身份...
在IN语句中传入一组参数值 11.7.4. 处理复杂类型的存储过程调用 12. 使用ORM工具进行数据访问 12.1. 简介 12.2. Hibernate 12.2.1. 资源管理 12.2.2. 在Spring容器中创建 SessionFactory 12.2.3. The ...
使用XFire来暴露Web服务 17.6. 对远程接口不提供自动探测 17.7. 在选择这些技术时的一些考虑 18. Enterprise Java Bean(EJB)集成 18.1. 简介 18.2. 访问EJB 18.2.1. 概念 18.2.2. 访问本地的无状态Session ...
使用XFire来暴露Web服务 17.6. 对远程接口不提供自动探测 17.7. 在选择这些技术时的一些考虑 18. Enterprise Java Bean(EJB)集成 18.1. 简介 18.2. 访问EJB 18.2.1. 概念 18.2.2. 访问本地的无状态Session ...