0

KSOAPベースのWebサービスで「日付」を解析する必要があるアプリを開発しています。サーバーで「MM/dd / yyyy」の形式で日付を渡す必要があるため、SimepldateFormateを使用して、そのdate クラスに日付文字列を渡しますが、ここでは何かが間違っているので、次のようなエラーが発生します

エラー:

08-13 14:45:20.031: ERROR/KsoapDemoActivity(562): Exception=>java.text.ParseException: Unparseable date: "08/01/2011"

私はまた、日付クラスを使用してリクエストを送信しましKSoapたが、解決できませんでしたpi1.setType(Date.class);。また、make Classを試しましMarshalDate mdouble = new MarshalDate();たが、解決できませんでした。

これを手伝ってくれませんか

これが私のコードです

private void InsertClientDetailForMobApp() {
    // TODO Auto-generated method stub
    try {
        String NAMESPACE = "urn:MobileApplicationIntf-IMobileApplication";// "http://tempuri.org/";
        String METHOD_NAME = "InsertClientDetailForMobApp";
        String SOAP_ACTION = "urn:MobileApplicationIntf-IMobileApplication#InsertClientDetailForMobApp";
        String URL = ("URL");// 

        SoapObject Request = new SoapObject(NAMESPACE, METHOD_NAME);


        PropertyInfo pi1 = new PropertyInfo();
        pi1.setName("asfirstname");
        pi1.setValue("Nikunj");
        pi1.setType(String.class);
        Request.addProperty(pi1);

        PropertyInfo pi2 = new PropertyInfo();
        pi1.setName("asLastName");
        pi1.setValue("patel");
        pi1.setType(String.class);
        Request.addProperty(pi1);

        PropertyInfo pi3 = new PropertyInfo();
        pi1.setName("asNationalID");
        pi1.setValue("25125514");
        pi1.setType(String.class);
        Request.addProperty(pi1);

        PropertyInfo pi4 = new PropertyInfo();
        pi1.setName("asCountryissued");
        pi1.setValue("asdasdasd");
        pi1.setType(String.class);
        Request.addProperty(pi1);

        PropertyInfo pi5 = new PropertyInfo();
        pi1.setName("asLicenceNo");
        pi1.setValue("asdasd");
        pi1.setType(String.class);
        Request.addProperty(pi1);

        PropertyInfo pi6 = new PropertyInfo();
        pi1.setName("asPassportNo");
        pi1.setValue("12512513221321");
        pi1.setType(String.class);
        Request.addProperty(pi1);

        PropertyInfo pi7 = new PropertyInfo();
        pi1.setName("asGender");
        pi1.setValue("M");
        pi1.setType(String.class);
        Request.addProperty(pi1);

        PropertyInfo pi8 = new PropertyInfo();
        pi1.setName("asAddress1");
        pi1.setValue("Indasdas asd as aia");
        pi1.setType(String.class);
        Request.addProperty(pi1);

        PropertyInfo pi9 = new PropertyInfo();
        pi1.setName("asAddress2");
        pi1.setValue("asdas asd asdasdas ");
        pi1.setType(String.class);
        Request.addProperty(pi1);


        PropertyInfo pi10 = new PropertyInfo();
        pi1.setName("asCountry");
        pi1.setValue("India");
        pi1.setType(String.class);
        Request.addProperty(pi1);


        PropertyInfo pi11 = new PropertyInfo();
        pi1.setName("asCity");
        pi1.setValue("Ahmedabad");
        pi1.setType(String.class);
        Request.addProperty(pi1);


        PropertyInfo pi12 = new PropertyInfo();
        pi1.setName("asProvince");
        pi1.setValue("Gujarat");
        pi1.setType(String.class);
        Request.addProperty(pi1);


        PropertyInfo pi13 = new PropertyInfo();
        pi1.setName("asZip");
        pi1.setValue("356256");
        pi1.setType(String.class);
        Request.addProperty(pi1);


        PropertyInfo pi14 = new PropertyInfo();
        pi1.setName("asDayTelephone");
        pi1.setValue("15165165565456");
        pi1.setType(String.class);
        Request.addProperty(pi1);


        PropertyInfo pi15 = new PropertyInfo();
        pi1.setName("asEveTelephone");
        pi1.setValue("5545654654");
        pi1.setType(String.class);
        Request.addProperty(pi1);

        PropertyInfo pi16 = new PropertyInfo();
        pi1.setName("asFAX");
        pi1.setValue("54145615");
        pi1.setType(String.class);
        Request.addProperty(pi1);

        PropertyInfo pi17 = new PropertyInfo();
        pi1.setName("asEmail");
        pi1.setValue("nkpatel@asd-infotech.com");
        pi1.setType(String.class);
        Request.addProperty(pi1);

        PropertyInfo pi18 = new PropertyInfo();
        pi1.setName("asUserName");
        pi1.setValue("Nik123");
        pi1.setType(String.class);
        Request.addProperty(pi1);

        PropertyInfo pi19 = new PropertyInfo();
        pi1.setName("asPassword");
        pi1.setValue("India");
        pi1.setType(String.class);
        Request.addProperty(pi1);

        PropertyInfo pi20 = new PropertyInfo();
        pi1.setName("asLanguege");
        pi1.setValue("English");
        pi1.setType(String.class);
        Request.addProperty(pi1);

        PropertyInfo pi21 = new PropertyInfo();
        pi1.setName("asQuestion1");
        pi1.setValue("Question1");
        pi1.setType(String.class);
        Request.addProperty(pi1);

        PropertyInfo pi22 = new PropertyInfo();
        pi1.setName("asAnswer1");
        pi1.setValue("Nothing1");
        pi1.setType(String.class);
        Request.addProperty(pi1);

        PropertyInfo pi23 = new PropertyInfo();
        pi1.setName("asQuestion2");
        pi1.setValue("what1");
        pi1.setType(String.class);
        Request.addProperty(pi1);

        PropertyInfo pi24 = new PropertyInfo();
        pi1.setName("asSSN");
        pi1.setValue("123456");
        pi1.setType(String.class);
        Request.addProperty(pi1);

        PropertyInfo pi25 = new PropertyInfo();
        pi1.setName("asAnswer2");
        pi1.setValue("Nothing2");
        pi1.setType(String.class);
        Request.addProperty(pi1);

        PropertyInfo pi26 = new PropertyInfo();
        pi1.setName("asPrimaryCurrency");
        pi1.setValue("INR");
        pi1.setType(String.class);
        Request.addProperty(pi1);

        PropertyInfo pi27 = new PropertyInfo();
        pi1.setName("asSecondaryCurrency");
        pi1.setValue("USD");
        pi1.setType(String.class);
        Request.addProperty(pi1);

        PropertyInfo pi28 = new PropertyInfo();
        pi1.setName("asAgentID");
        pi1.setValue("456");
        pi1.setType(String.class);
        Request.addProperty(pi1);

        PropertyInfo pi29 = new PropertyInfo();
        pi1.setName("asBranchCode");
        pi1.setValue("Tcom India");
        pi1.setType(String.class);
        Request.addProperty(pi1);


        String str_date = "08/01/2011";
        // yyyy-MM-dd'T'HH:mm:ss
        DateFormat formatter;
        Date date;
        //formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
        formatter = new SimpleDateFormat("MM-dd-yyyy");
        date = (Date) formatter.parse(str_date);


        PropertyInfo pi30 = new PropertyInfo();
        pi1.setName("dtDOB");
        pi1.setValue(date);
        pi1.setType(Date.class);
        Request.addProperty(pi1);






        /*
         * Call the web service and retrieve result ... how luvly <3
         */





        SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
                SoapEnvelope.VER11);
        envelope.dotNet = true;
        envelope.setOutputSoapObject(Request);

        AndroidHttpTransport androidHttpTransport = new AndroidHttpTransport(
                URL);

        MarshalDate mdouble = new MarshalDate();
        mdouble.register(envelope);



        androidHttpTransport.call(SOAP_ACTION, envelope);
        Log.i("TAG", "soapResponse=>" + envelope.getResponse());
       } catch (Exception e) {
           soapResponseObject = null;
           Log.e(TAG, "niraliwebservice() Exception=>" + e);
       }
}

MarshalDate

package com.KsoapDemo;

import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.kobjects.isodate.IsoDate;
import org.ksoap2.serialization.Marshal;
import org.ksoap2.serialization.PropertyInfo;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlSerializer;


public class MarshalDate implements Marshal
{

        public Object readInstance(XmlPullParser parser, String namespace, String name, 
                PropertyInfo expected) throws IOException, XmlPullParserException {

            return IsoDate.stringToDate(parser.nextText(), IsoDate.DATE_TIME);


        }


        public void register(SoapSerializationEnvelope cm) {
             cm.addMapping(cm.xsd, "DateTime", Date.class, this);

        }


        public void writeInstance(XmlSerializer writer, Object obj) throws IOException {
             writer.text(IsoDate.dateToString((Date) obj, IsoDate.DATE_TIME));
            }

}

アップデート:

「08-01-2012」を「08/01/2012」に変更しましたが、エラーが発生します

SoapFault --faultcode:'SOAP-ENV:Server' faultstring:'モジュール'MobileApp.exe'のアドレス00405818でのアクセス違反。アドレス69570A03の読み取り'faultactor:''詳細:null

4

3 に答える 3

2

simpleDateFormat/の代わりに使用してください...-

 formatter = new SimpleDateFormat("MM/dd/yyyy");
于 2012-08-13T09:37:04.223 に答える
0

SimpleDateFormatクラスで間違ったパターンを使用しました

使用する:

formatter = new SimpleDateFormat("MM/dd/yyyy");

それ以外の:

formatter = new SimpleDateFormat("MM-dd-yyyy");
于 2012-08-13T09:40:00.777 に答える
0

MarshalDateをSOAPエンベロープに登録します。

MarshalDate _MarshalDate = new MarshalDate();
_MarshalDate.register(soapEnvelope);

次に、通過したい日付までプロパティを続行し、これを実行します。

PropertyInfo _PropertyInfo = new PropertyInfo();
_PropertyInfo.setName("yourParameterInYourMethodeInTheWebService");
_PropertyInfo.setType(Date.class);
_PropertyInfo.setValue(yourVariableOfTypeDate);
soapReq.addProperty(_PropertyInfo);
于 2013-04-02T12:09:29.923 に答える