Axis2传递date类型参数丢失时分秒
2013-07-25 15:14
344 查看
公司开发的项目用到了web service,以前也没有接触过,老大说用Axis2实现。刚开始的时候给了我们一个基本的框架(也就是web service的基本调用),自己不太懂,也就只能照葫芦画瓢,但是这个项目中大量用到了含有时分秒的Date类型的数据。
Axis2传递的参数只能是一些简单类型,Vo,数组等。本来说Date类型是支持的。但是在使用的过程中发现每次Date传到service就变成了yyyy-MM-dd 00:00:00,针对这个问题,有些人建议就是转为String类型处理。但是感觉怪怪的。
这两天想看看Axis2到底是怎么传递数据的。于是在eclipse导入源代码。jar文件右键----》properties----》java source attachmen -----》 选择src文件-----》ok。这样就可以在eclispe里面查看jar文件的源代码了。Axis2传递数据主要在axis2-adb-1.6.1.jar。打开org.apache.axis2.databinding.typemapping.SimpleTypeMapper.class文件可以看到里面定义了很多类型,估计这些就是Axis2支持的数据类型吧。看到309行为: SimpleDateFormat
zulu = new SimpleDateFormat("yyyy-MM-dd");原来Axis2是先将Date类型转为了String类型。而格式为yyyy-MM-dd,看到这里,自然就想到了service端接收到的数据肯定是没有时分秒的。于是我就将yyyy-MM-dd改为了yyyy-MM-ddhh:mm:ss,心想这样就成了。反编译、保存、替换运行结果报错了。In
valid string sufix。于是想,既然将Date转为了自定义的String类型,那么是不是在service接收转不回来了呢?终于SimpleTypeMapper.class下面找到了一个方法:public static Object makeDate(String source) {
return ConverterUtil.convertToDate(source);
}于是找到ConverterUtil类的convertToDate方法,看了一下这个方法,确实就是将String转回为Date的逻辑。但是怎么会错呢,原来它有字符串格式要求。我那自定义的格式不能识别。赶紧着这个方法进行了一点修改。在反编译、保存、替换,这次终于成功了。
传入new Date()
![](https://img-blog.csdn.net/20130725151601218?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcHh5MTUxMDc0Mg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
service 输出含时分秒的Date类型
Axis2传递的参数只能是一些简单类型,Vo,数组等。本来说Date类型是支持的。但是在使用的过程中发现每次Date传到service就变成了yyyy-MM-dd 00:00:00,针对这个问题,有些人建议就是转为String类型处理。但是感觉怪怪的。
这两天想看看Axis2到底是怎么传递数据的。于是在eclipse导入源代码。jar文件右键----》properties----》java source attachmen -----》 选择src文件-----》ok。这样就可以在eclispe里面查看jar文件的源代码了。Axis2传递数据主要在axis2-adb-1.6.1.jar。打开org.apache.axis2.databinding.typemapping.SimpleTypeMapper.class文件可以看到里面定义了很多类型,估计这些就是Axis2支持的数据类型吧。看到309行为: SimpleDateFormat
zulu = new SimpleDateFormat("yyyy-MM-dd");原来Axis2是先将Date类型转为了String类型。而格式为yyyy-MM-dd,看到这里,自然就想到了service端接收到的数据肯定是没有时分秒的。于是我就将yyyy-MM-dd改为了yyyy-MM-ddhh:mm:ss,心想这样就成了。反编译、保存、替换运行结果报错了。In
valid string sufix。于是想,既然将Date转为了自定义的String类型,那么是不是在service接收转不回来了呢?终于SimpleTypeMapper.class下面找到了一个方法:public static Object makeDate(String source) {
return ConverterUtil.convertToDate(source);
}于是找到ConverterUtil类的convertToDate方法,看了一下这个方法,确实就是将String转回为Date的逻辑。但是怎么会错呢,原来它有字符串格式要求。我那自定义的格式不能识别。赶紧着这个方法进行了一点修改。在反编译、保存、替换,这次终于成功了。
传入new Date()
service 输出含时分秒的Date类型
相关文章推荐
- url中date类型参数的传递
- Axis2到底能否传递复杂类型参数【求指导篇】
- java Date类型插入orcale数据库是出现时分秒丢失现象
- struts2.2.1.1 类型转换问题 (传递Date类型参数)
- java调用(axis2)WebService传递对象类型参数(源码)
- oracle 存储过程中date类型变量声明中to_date赋值丢失时分秒问题
- Spring Controller 传递时间Date类型参数
- 解决hibernate中使用new Date() 造成oracle date类型时分秒精准度丢失
- OJDBC14导致查询时间时Date类型的时分秒丢失,OJDBC6修正此问题
- url中date类型参数的传递
- js传递参数时类型错误
- struts2的action之间的参数传递和结果类型
- java中显示ORACLE中的DATE类型的时分秒的问题
- perl基础:传递hash类型参数
- Js从头学起(基本数据类型和引用类型的参数传递详细分析)
- Java传递基本类型:值传递,对象作为参数:引用传递
- Cucumber中参数类型传递
- ExtJS Date参数中途丢失
- 反射技术动态调用方法中的引用类型参数传递 (转)
- J2EE项目中用使用Date类型不显示时分秒的解决方法