java.lang.IllegalArgumentException: Illegal character (U+0) 待解决的主题

来源:互联网 发布:物联网 人才需求数据 编辑:程序博客网 时间:2024/06/03 13:15
 12-02 15:27:25.153: W/System.err(8101): java.lang.IllegalArgumentException: Illegal character (U+0)
12-02 15:27:25.154: W/System.err(8101): at org.kxml2.io.KXmlSerializer.reportInvalidCharacter(KXmlSerializer.java:148)
12-02 15:27:25.154: W/System.err(8101): at org.kxml2.io.KXmlSerializer.writeEscaped(KXmlSerializer.java:139)
12-02 15:27:25.154: W/System.err(8101): at org.kxml2.io.KXmlSerializer.text(KXmlSerializer.java:540)
12-02 15:27:25.154: W/System.err(8101): at org.ksoap2.serialization.DM.writeInstance(DM.java:102)
12-02 15:27:25.155: W/System.err(8101): at org.ksoap2.serialization.SoapSerializationEnvelope.writeElement(SoapSerializationEnvelope.java:771)
12-02 15:27:25.155: W/System.err(8101): at org.ksoap2.serialization.SoapSerializationEnvelope.writeProperty(SoapSerializationEnvelope.java:764)
12-02 15:27:25.155: W/System.err(8101): at org.ksoap2.serialization.SoapSerializationEnvelope.writeObjectBody(SoapSerializationEnvelope.java:688)
12-02 15:27:25.155: W/System.err(8101): at org.ksoap2.serialization.SoapSerializationEnvelope.writeObjectBodyWithAttributes(SoapSerializationEnvelope.java:664)
12-02 15:27:25.155: W/System.err(8101): at org.ksoap2.serialization.SoapSerializationEnvelope.writeElement(SoapSerializationEnvelope.java:777)
12-02 15:27:25.155: W/System.err(8101): at org.ksoap2.serialization.SoapSerializationEnvelope.writeProperty(SoapSerializationEnvelope.java:764)
12-02 15:27:25.156: W/System.err(8101): at org.ksoap2.serialization.SoapSerializationEnvelope.writeObjectBody(SoapSerializationEnvelope.java:688)
12-02 15:27:25.156: W/System.err(8101): at org.ksoap2.serialization.SoapSerializationEnvelope.writeObjectBodyWithAttributes(SoapSerializationEnvelope.java:664)
12-02 15:27:25.156: W/System.err(8101): at org.ksoap2.serialization.SoapSerializationEnvelope.writeElement(SoapSerializationEnvelope.java:777)
12-02 15:27:25.156: W/System.err(8101): at org.ksoap2.serialization.SoapSerializationEnvelope.writeBody(SoapSerializationEnvelope.java:634)
12-02 15:27:25.156: W/System.err(8101): at org.ksoap2.SoapEnvelope.write(SoapEnvelope.java:205)
12-02 15:27:25.156: W/System.err(8101): at org.ksoap2.transport.Transport.createRequestData(Transport.java:153)
12-02 15:27:25.157: W/System.err(8101): at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:149)
12-02 15:27:25.161: W/System.err(8101): at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:118)
12-02 15:27:25.161: W/System.err(8101): at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:113)
12-02 15:27:25.161: W/System.err(8101): at com.example.webservice.KsoapFeedbackservice.saveLostevents(KsoapFeedbackservice.java:259)
12-02 15:27:25.161: W/System.err(8101): at com.example.processor.MultiTask.doInBackground(MultiTask.java:243)
12-02 15:27:25.163: W/System.err(8101): at android.os.AsyncTask$2.call(AsyncTask.java:295)
12-02 15:27:25.163: W/System.err(8101): at java.util.concurrent.FutureTask.run(FutureTask.java:237)
12-02 15:27:25.163: W/System.err(8101): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)
12-02 15:27:25.164: W/System.err(8101): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
12-02 15:27:25.164: W/System.err(8101): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)

12-02 15:27:25.164: W/System.err(8101): at java.lang.Thread.run(Thread.java:818)



解决方式是:


Marshal 类型要放在 PropertyInfo前注册, 比如:


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


       for(int i = 0; i< templist.size(); i++) {
        if(i>0 && isNeededFiltered(templist.get(i-1),templist.get(i))){
        continue;
        }
           PropertyInfo propertyInfo = new PropertyInfo();
           propertyInfo.setName("arg0");
           propertyInfo.setType(Lostevent.class);
           if((templist.get(i).getLosteventtype() != null ) && templist.get(i).getLosteventtype().equals("电话")){
            String callrecord = templist.get(i).getCallrecord();
            if(callrecord.contains("号码:") && callrecord.contains(" 联系人姓名")){
            String phonenumber = callrecord.substring(callrecord.indexOf("号码:")+3,callrecord.indexOf(" 联系人姓名"));
            if(phonenumber.length() > 5){
            phonenumber = phonenumber.trim();
            callrecord += ShareTools.getLocationOfPhoneNumber(phonenumber);
            templist.get(i).setCallrecord(callrecord);
            }
            }
           }
     
           templist.get(i).setLosteventid("");
           propertyInfo.setValue(templist.get(i));
           request.addProperty(propertyInfo);
           //System.err.println("------------- webservice saveLostevents  lts i = "+ i);
           if((templist.get(i).getLosteventtype() != null ) && templist.get(i).getLosteventtype().equals("位置信息")){
            double lat = Double.parseDouble(templist.get(i).getLocatiomhorizontal());
            double longitude = Double.parseDouble(templist.get(i).getLocationvertical());
            double distance = ShareTools.getDistance(DefenderApp.last_longitude, DefenderApp.last_latitude, longitude, lat);
            if(distance > 50){
            DefenderApp.last_longitude =  longitude;
            DefenderApp.last_latitude = lat;
            DefenderApp.last_location = templist.get(i).getLocation();
            }
            else{
            DefenderApp.likely_location_count++;
            if(DefenderApp.likely_location_count > DefenderApp.SAME_LOCATION_THREADSHOD/* && (DefenderApp.last_latitude != lat)*/){
            DefenderApp.likely_location_count = 0;
            ef = new Efence();
            //ef.setEfenceid(System.currentTimeMillis()+"");
            ef.setLocation(DefenderApp.last_location);
            ef.setLastlat(DefenderApp.last_latitude);
            ef.setLastlot(DefenderApp.last_longitude);
            ef.setLaststaytime(30l);
            ef.setStarttime(new Date(System.currentTimeMillis()-30*60000));
            ef.setPhone(ShareTools.phonenumberfix(DefenderApp.phone));
            if(DefenderApp.last_location.contains("兴趣点")){
            String efencename = DefenderApp.last_location.substring(DefenderApp.last_location.indexOf("兴趣点")+4, DefenderApp.last_location.length());
            String[] pois =efencename.split(";");
            if(pois!= null && pois.length>0){
            if(pois.length>1){
            ef.setAlainame(pois[0]+","+pois[1]);
            }
            else{
            ef.setAlainame(pois[0]);
            }
            }
            }
            }
            }
           }
       }
       envelope.bodyOut = request;


envelope.bodyOut = request;
       transport.debug = true;
       
      
       
       transport.call(WebsericeData.NAMESPACE+METHOD_saveLostevents, envelope);
     //System.out.println(transport.requestDump);        

0 1
原创粉丝点击