我无法从ksoap2库获取属性的属性?

时间:2013-11-12 06:06:08

标签: java android web-services ksoap2

我无法从我想要的属性中获取属性。它给出了arrayindexoutofbounds异常。而且无法找到价值。

我打印了我得到的完整信封但是我也没有得到属性值,我只得到属性值。 请帮助我。

这是代码

public CallSoap ReturnIssueDetails(String a,String b,int projectid,int issueid)
{
    String[][] results = null;
    CallSoap cs=new CallSoap(mContext);
    SoapObject request = new SoapObject(WSDL_TARGET_NAMESPACE,"ReturnIssueDetails");
    PropertyInfo pi=new PropertyInfo();
    pi.setName("email");
    pi.setValue(a);
    pi.setType(String.class);
    request.addProperty(pi);
    pi=new PropertyInfo();
    pi.setName("password");
    pi.setValue(b);
    pi.setType(String.class);
    request.addProperty(pi);
    pi=new PropertyInfo();
    pi.setName("projectid");
    pi.setValue(projectid);
    pi.setType(int.class);
    request.addProperty(pi);
    pi=new PropertyInfo();
    pi.setName("issueid");
    pi.setValue(issueid);
    pi.setType(int.class);
    request.addProperty(pi);

    String field,changesby,updatedate,newvalue,comments,lastvalue;

    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
            SoapEnvelope.VER11);
    envelope.setAddAdornments(true);
    envelope.dotNet = true;
    envelope.implicitTypes = true;
    //envelope.
    envelope.setOutputSoapObject(request);

     //httpTransport = new HttpTransportSE(SOAP_ADDRESS);

    Log.e("2", "2");


        try {

            httpTransport.call("http://tempuri.org/ReturnIssueDetails", envelope);
            Log.e("3", "3");
            SoapObject response = (SoapObject) envelope.getResponse();
            //SoapObject responsex = (SoapObject) envelope.bodyIn;
            Log.e("3.5", "3.5");
            Log.e("responsex",envelope.getResponse().toString());

            Log.e("count",response.getPropertyCount()+"");
            SoapObject responsein = (SoapObject)  response.getProperty(0);;
            Log.e("count",responsein.getPropertyCount()+"");
            SoapObject issuetype =(SoapObject) responsein.getProperty(0);
            SoapObject severitytype =(SoapObject) responsein.getProperty(1);
            SoapObject assignee =(SoapObject) responsein.getProperty(2);
            SoapObject assigneeget =(SoapObject) responsein.getAttribute(0);
            SoapObject issuedescription =(SoapObject) responsein.getProperty(3);
            SoapObject changescomments =(SoapObject) responsein.getProperty(4);

            Log.e("obj2", "obj2");

            Log.e("count",issuetype.getPropertyCount()+"");
            Log.e("count",severitytype.getPropertyCount()+"");
            Log.e("count",assignee.getPropertyCount()+"");
            Log.e("count",issuedescription.getPropertyCount()+"");
            Log.e("count",changescomments.getPropertyCount()+"");
            results=new String[changescomments.getPropertyCount()][6];


            savePreferences("sizeIssuecomment", Integer.toString(changescomments.getPropertyCount()));
            savePreferences("sizeIssuetype", Integer.toString(issuetype.getPropertyCount()));
            savePreferences("sizeSeveritytype", Integer.toString(severitytype.getPropertyCount()));
            savePreferences("sizeAssignee", Integer.toString(assignee.getPropertyCount()));
            savePreferences("sizeIssuedescription", Integer.toString(issuedescription.getPropertyCount()));

            cs.issue_types=new String[issuetype.getPropertyCount()];
            cs.severity_types=new String[severitytype.getPropertyCount()];
            cs.assignees=new String[assignee.getPropertyCount()];
            cs.issue_description=new String[issuedescription.getPropertyCount()];

            for(int i=0;i<issuetype.getPropertyCount();i++)
            {
                Object obj2 =(Object) issuetype.getProperty(i);

                cs.issue_types[i]=obj2.toString();
                Log.e("value",cs.issue_types[i]+"");

            }
            for(int i=0;i<severitytype.getPropertyCount();i++)
            {
                Object obj2 =(Object) severitytype.getProperty(i);

                cs.severity_types[i]=obj2.toString();
                Log.e("value",cs.severity_types[i]+"");
            }
            for(int i=0;i<assignee.getPropertyCount();i++)
            {


                Object obj2 =(Object) assignee.getProperty(i);
                                    assignee.getAttribute(0);

                Log.e("assign values", assigneeget.toString());
                //Log.e("assign_atr values",                               assignee_atr.toString());
                cs.assignees[i]=obj2.toString();
                cs.assignees[i]=obj2.toString();
            }
            for(int i=0;i<issuedescription.getPropertyCount();i++)
            {
                Object obj2 =(Object) issuedescription.getProperty(i);
                cs.issue_description[i]=obj2.toString();
            }
            for(int i=0; i<changescomments.getPropertyCount(); i++)
            {




                SoapObject obj2 =(SoapObject) changescomments.getProperty(i);
                field= obj2.getProperty(0).toString();
                Log.e("value : ",field+"");
                changesby= obj2.getProperty(1).toString();
                Log.e("value : ",changesby+"");
                updatedate=obj2.getProperty(2).toString();
                Log.e("value : ",updatedate+"");
                newvalue= obj2.getProperty(3).toString();
                Log.e("value : ",newvalue+"");
                comments= obj2.getProperty(4).toString();
                Log.e("value : ",comments+"");
                lastvalue= obj2.getProperty(5).toString();
                Log.e("value : ",lastvalue+"");
                results[i][0]=field;
                results[i][1]=changesby;
                results[i][2]=updatedate;
                results[i][3]=newvalue;
                results[i][4]=comments;
                results[i][5]=lastvalue;


            }
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }



        Log.e("6", "6");
        cs.issue_changes_comments=results;
    return  cs;
}

1 个答案:

答案 0 :(得分:0)

我认为这个链接可以帮助您在android中使用Ksoap2库:

Ksoap2 Android App Example