Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法使用ksoap2序列化日期_Java_Android_.net_Web Services_Ksoap2 - Fatal编程技术网

Java 无法使用ksoap2序列化日期

Java 无法使用ksoap2序列化日期,java,android,.net,web-services,ksoap2,Java,Android,.net,Web Services,Ksoap2,无论我尝试什么格式,我都无法将日期从Android(Java)应用程序发送到.NET web服务。我试着把它作为gregoriacalendar、日期、日历发送。。。什么都不管用 我得到一个“无法序列化”错误作为运行时异常。我正在使用ksoap2来管理我的web服务调用。有什么想法吗 错误如下: java.lang.RuntimeException: Cannot serialize: java.util.GregorianCalendar... java.lang.RuntimeExcepti

无论我尝试什么格式,我都无法将日期从Android(Java)应用程序发送到.NET web服务。我试着把它作为
gregoriacalendar
日期
日历
发送。。。什么都不管用

我得到一个“无法序列化”错误作为运行时异常。我正在使用ksoap2来管理我的web服务调用。有什么想法吗

错误如下:

java.lang.RuntimeException: Cannot serialize: java.util.GregorianCalendar...
java.lang.RuntimeException: Cannot serialize: java.util.Date...

最终通过几个死胡同找到了这个。ksoap库似乎不知道如何处理要在webservice调用中发送的日期或双倍值-您需要告诉它如何处理这些日期或双倍值,否则会出现序列化错误

这样做的方法是实现
MarshalDate
类:具有实现它所需的代码

根据我的经验,ksoap2库中已经有了
MarshalDate
类,该类将完成这项工作,但默认情况下不会将其注册到信封中。通过在信封上注册(如下所示),问题得以解决。对于双精度或其他浮点数,请改用
marshallfloat

要解决此问题,在通过
HttpTransport
发送
SoapSerializationEnvelope
之前,请拨打此电话:

new MarshalDate().register(envelope);
其中,
envelope
是您的
SoapSerializationEnvelope


我发现ksoap2库在导入类时意外地拥有
MarshallDate
MarshallFloat
类,因为Eclipse为我提供了两个导入选项—其中一个在ksoap2中。包含的课程已经足够了,我删除了我的自定义课程。

你能澄清你的答案吗?我无法从您在其中所写的内容判断KSOAP2中的MarshalDate类是否足以解决此问题(当然,在信封上注册它)。是的,KSOAP2中的MarshalDate类足以解决此问题,但可能需要为KSOAP添加它。嗯,我使用的是KSOAP2的最新版本,但仍然需要“Cannot serialize:java.util.Gregoriacalendar”@Jose_GD,您已经在信封中注册了
MarshallDate
类?如果是这样,请尝试使用教程在包中创建自己的类并注册。我已经注册了,我将尝试您的建议