很显然,我传入的Timestamp类型的参数无法序列化,经验证BigDecimal类型的也不能序列化。
12-22 06:50:34.277: W/System.err(2861): java.lang.RuntimeException: Cannot serialize: 2014-06-13 10:36:00.0
12-22 06:50:34.297: W/System.err(2861): at org.ksoap2.serialization.SoapSerializationEnvelope.writeElement(SoapSerializationEnvelope.java:679)
12-22 06:50:34.307: W/System.err(2861): at org.ksoap2.serialization.SoapSerializationEnvelope.writeProperty(SoapSerializationEnvelope.java:663)
12-22 06:50:34.317: W/System.err(2861): at org.ksoap2.serialization.SoapSerializationEnvelope.writeObjectBody(SoapSerializationEnvelope.java:632)
12-22 06:50:34.327: W/System.err(2861): at org.ksoap2.serialization.SoapSerializationEnvelope.writeElement(SoapSerializationEnvelope.java:675)
12-22 06:50:34.337: W/System.err(2861): at org.ksoap2.serialization.SoapSerializationEnvelope.writeProperty(SoapSerializationEnvelope.java:663)
12-22 06:50:34.347: W/System.err(2861): at org.ksoap2.serialization.SoapSerializationEnvelope.writeObjectBody(SoapSerializationEnvelope.java:632)
12-22 06:50:34.347: W/System.err(2861): at org.ksoap2.serialization.SoapSerializationEnvelope.writeObjectBody(SoapSerializationEnvelope.java:616)
12-22 06:50:34.357: W/System.err(2861): at org.ksoap2.serialization.SoapSerializationEnvelope.writeElement(SoapSerializationEnvelope.java:673)
12-22 06:50:34.367: W/System.err(2861): at org.ksoap2.serialization.SoapSerializationEnvelope.writeBody(SoapSerializationEnvelope.java:597)
12-22 06:50:34.367: W/System.err(2861): at org.ksoap2.SoapEnvelope.write(SoapEnvelope.java:192)
12-22 06:50:34.377: W/System.err(2861): at org.ksoap2.transport.Transport.createRequestData(Transport.java:101)
12-22 06:50:34.387: W/System.err(2861): at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:114)
12-22 06:50:34.387: W/System.err(2861): at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:90)
12-22 06:50:34.397: W/System.err(2861): at com.win_d.webservice.Vw_order.o_order_Add(Vw_order.java:135)
12-22 06:50:34.397: W/System.err(2861): at com.win_d.prj927carconservation.Activity_order_full$1.doInBackground(Activity_order_full.java:106)
12-22 06:50:34.407: W/System.err(2861): at com.win_d.prj927carconservation.Activity_order_full$1.doInBackground(Activity_order_full.java:1)
12-22 06:50:34.417: W/System.err(2861): at android.os.AsyncTask$2.call(AsyncTask.java:288)
12-22 06:50:34.427: W/System.err(2861): at java.util.concurrent.FutureTask.run(FutureTask.java:237)
12-22 06:50:34.427: W/System.err(2861): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
12-22 06:50:34.437: W/System.err(2861): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
12-22 06:50:34.447: W/System.err(2861): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
12-22 06:50:34.447: W/System.err(2861): at java.lang.Thread.run(Thread.java:841)
12-22 06:50:36.007: I/Tag(2861): java.lang.RuntimeException: Cannot serialize: 2014-06-13 10:36:00.0
12-22 06:50:34.277: W/System.err(2861): java.lang.RuntimeException: Cannot serialize: 2014-06-13 10:36:00.0
12-22 06:50:34.297: W/System.err(2861): at org.ksoap2.serialization.SoapSerializationEnvelope.writeElement(SoapSerializationEnvelope.java:679)
12-22 06:50:34.307: W/System.err(2861): at org.ksoap2.serialization.SoapSerializationEnvelope.writeProperty(SoapSerializationEnvelope.java:663)
12-22 06:50:34.317: W/System.err(2861): at org.ksoap2.serialization.SoapSerializationEnvelope.writeObjectBody(SoapSerializationEnvelope.java:632)
12-22 06:50:34.327: W/System.err(2861): at org.ksoap2.serialization.SoapSerializationEnvelope.writeElement(SoapSerializationEnvelope.java:675)
12-22 06:50:34.337: W/System.err(2861): at org.ksoap2.serialization.SoapSerializationEnvelope.writeProperty(SoapSerializationEnvelope.java:663)
12-22 06:50:34.347: W/System.err(2861): at org.ksoap2.serialization.SoapSerializationEnvelope.writeObjectBody(SoapSerializationEnvelope.java:632)
12-22 06:50:34.347: W/System.err(2861): at org.ksoap2.serialization.SoapSerializationEnvelope.writeObjectBody(SoapSerializationEnvelope.java:616)
12-22 06:50:34.357: W/System.err(2861): at org.ksoap2.serialization.SoapSerializationEnvelope.writeElement(SoapSerializationEnvelope.java:673)
12-22 06:50:34.367: W/System.err(2861): at org.ksoap2.serialization.SoapSerializationEnvelope.writeBody(SoapSerializationEnvelope.java:597)
12-22 06:50:34.367: W/System.err(2861): at org.ksoap2.SoapEnvelope.write(SoapEnvelope.java:192)
12-22 06:50:34.377: W/System.err(2861): at org.ksoap2.transport.Transport.createRequestData(Transport.java:101)
12-22 06:50:34.387: W/System.err(2861): at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:114)
12-22 06:50:34.387: W/System.err(2861): at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:90)
12-22 06:50:34.397: W/System.err(2861): at com.win_d.webservice.Vw_order.o_order_Add(Vw_order.java:135)
12-22 06:50:34.397: W/System.err(2861): at com.win_d.prj927carconservation.Activity_order_full$1.doInBackground(Activity_order_full.java:106)
12-22 06:50:34.407: W/System.err(2861): at com.win_d.prj927carconservation.Activity_order_full$1.doInBackground(Activity_order_full.java:1)
12-22 06:50:34.417: W/System.err(2861): at android.os.AsyncTask$2.call(AsyncTask.java:288)
12-22 06:50:34.427: W/System.err(2861): at java.util.concurrent.FutureTask.run(FutureTask.java:237)
12-22 06:50:34.427: W/System.err(2861): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
12-22 06:50:34.437: W/System.err(2861): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
12-22 06:50:34.447: W/System.err(2861): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
12-22 06:50:34.447: W/System.err(2861): at java.lang.Thread.run(Thread.java:841)
12-22 06:50:36.007: I/Tag(2861): java.lang.RuntimeException: Cannot serialize: 2014-06-13 10:36:00.0
Host: localhost
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://tempuri.org/o_order_Add"<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<o_order_Add xmlns="http://tempuri.org/">
<model>
<collectname>string</collectname>
<custimg>base64Binary</custimg>
<dealimg>base64Binary</dealimg>
<orderid>int</orderid>
<ordercode>string</ordercode>
<custid>int</custid>
<custname>string</custname>
<carno>string</carno>
<brandid>int</brandid>
<brandtext>string</brandtext>
<cardtype>int</cardtype>
<cardtypetext>string</cardtypetext>
<mtype>int</mtype>
<mtypetext>string</mtypetext>
<phonenumber>string</phonenumber>
<mileage>decimal</mileage>
<joindate>dateTime</joindate>
<maintenancetime>dateTime</maintenancetime>
<noticetime>dateTime</noticetime>
<completetime>dateTime</completetime>
<predictime>dateTime</predictime>
<account>decimal</account>
<discountamount>decimal</discountamount>
<cash>decimal</cash>
<paymentcard>decimal</paymentcard>
<bankcard>decimal</bankcard>
<arrears>decimal</arrears>
<invoicetype>int</invoicetype>
<invoicetypetext>string</invoicetypetext>
<invoicemoney>decimal</invoicemoney>
<state>int</state>
<statetext>string</statetext>
<re>string</re>
<userid>int</userid>
<carid>int</carid>
<myname>string</myname>
<setdate>dateTime</setdate>
<shopid>int</shopid>
<shopname>string</shopname>
<driverno>string</driverno>
<engines>string</engines>
<frameno>string</frameno>
<pycode>string</pycode>
<address>string</address>
<ordermoney>decimal</ordermoney>
<acceptid>int</acceptid>
<acceptname>string</acceptname>
<zeromoney>decimal</zeromoney>
<serviceids>string</serviceids>
<cardid>int</cardid>
<cardno>string</cardno>
<lessmoney>decimal</lessmoney>
</model>
<ordercode>string</ordercode>
<brandid>int</brandid>
<cardtype>int</cardtype>
</o_order_Add>
</soap:Body>
</soap:Envelope>
@hjywyj
@嘿木耳
@万境绝尘
@Darcy杨
@Cheney140504
@老科达
@修改密码
@等
12-22 06:50:34.277: W/System.err(2861): java.lang.RuntimeException: Cannot serialize: 2014-06-13 10:36:00.0
版头大牛,上面这条log很清楚啊,我手写的Timestamp并不能序列化。我猜想,可能是这里的type错了CarMaintenanceInfo.getPropertyInfo.arg2.type = MarshalDate.DATE_CLASS;
或者这里CarMaintenanceInfo.getPropertyInfo."变量名"=Timestamp.valueOf(arg1.toString());
或者这里o_order_Add().new MarshalDate().register(envelope);Timestamp和BigDecimal的用法很可能是不规范的,我各种尝试都不能行。
这两个接口我确实用不好,但是全改成String之后,调用接口请求可以通过,但是envelope.getResponse();接收到的是下面这条log
SoapFault - faultcode: 'soap:Client' faultstring: 'System.Web.Services.Protocols.SoapException: 服务器无法读取请求。 ---> System.InvalidOperationException: XML 文档(1, 293)中有错误。 ---> System.InvalidOperationException: 未识别指定的类型: name='CarMaintenanceInfo',namespace='http://tempuri.org/',位于 <model xmlns='http://tempuri.org/'>。
在 Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read3_o_order(Boolean isNullable, Boolean checkType)
在 Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read8_o_order_Add()
在 Microsoft.Xml.Serialization.GeneratedAssembly.ArrayOfObjectSerializer.Deserialize(XmlSerializationReader reader)
在 System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)
--- 内部异常堆栈跟踪的结尾 ---
在 System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)
在 System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle)
在 System.Web.Services.Protocols.SoapServerProtocol.ReadParameters()
--- 内部异常堆栈跟踪的结尾 ---
在 System.Web.Services.Protocols.SoapServerProtocol.ReadParameters()
在 System.Web.Services.Protocols.WebServiceHandler.CoreProcessRequest()' faultactor: 'null' detail: org.kxml2.kdom.Node@b3413880
大牛帮我看看我的实例化过程出了什么问题好吗?我猜想,可能是这里的type错了CarMaintenanceInfo.getPropertyInfo.arg2.type = MarshalDate.DATE_CLASS;
或者这里CarMaintenanceInfo.getPropertyInfo."变量名"=Timestamp.valueOf(arg1.toString());
或者这里o_order_Add().new MarshalDate().register(envelope);Timestamp和BigDecimal的用法很可能是不规范的,我各种尝试都不能行。