2013-04-16 24 views
1

我連接Android的Java與WCF服務。現在我試圖從WCF服務中獲取數據到我的項目中。序列化DataTable(WCF)到Android項目

我有從C#的DataTable類型的問題,我要解析到類稱爲組

現在我有錯誤系列化:

java.lang.ClassCastException:org.ksoap2.serialization .SoapObject 不能轉換爲org.ksoap2.serialization.SoapPrimitive

的WebService(WCF)

var sp = new StoreProcEgzequtor("[dbo].GetAddonsTypes"); 
string a = sp.SqlCommand.Connection.Database; 
DataTable dt = sp.ExecuteDataTable("Tabela"); 
return dt; 

類羣

public class Groups { 
    private long id; 
    private long ID2; 
    private int flgW; 
    private int flgO; 
    private String Name; 

活動

public class AndroidWSClientActivity extends Activity { 

    private static final String METHOD_NAME = "GetAddonsTypes"; 
    private static final String NAMESPACE = "http://tempuri.org/"; 
    private static final String URL = "http://10.0.2.2:53432/Service1.svc?wsdl"; 
    final String SOAP_ACTION = "http://tempuri.org/IService1/GetAddonsTypes"; 

    TextView textView; 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_wsclient_page); 

    textView = (TextView) findViewById(R.id.textView2); 


    Thread networkThread = new Thread() { 
     @Override 
     public void run() { 
      try { 
      SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);   
      SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 
      envelope.setOutputSoapObject(request); 

      HttpTransportSE ht = new HttpTransportSE(URL); 
      ht.call(SOAP_ACTION, envelope); 
      final SoapPrimitive response = (SoapPrimitive)envelope.getResponse(); 
      final String str = response.toString(); 

      runOnUiThread (new Runnable(){ 
     public void run() { 
      Log.e("OK",str.toString()); 
       } 
      }); 
      } 
     catch (Exception e) { 
      Log.e("WS", e.toString()); 
     } 
     } 
     }; 
     networkThread.start(); 
     } 
} 

回答

1

你的錯誤是下面的線。它的例外清楚。請檢查

final SoapPrimitive response = (SoapPrimitive)envelope.getResponse(); 

envelope.getResponse()返回SoapObject和你是它鑄造SoapPrimitive

+0

我使用SoapObject result =(SoapObject)envelope.getResponse();和result.getProperty(1).toString())然後我收到anyType {DocumentElement = anyType {Tabela = anyType {ID2 = 1; flgW = 0; ...但我想把我的價值觀,並把它們放入新的對象。 – boski

+0

我聽說我應該使用XML解析器,這是最好的選擇嗎? – boski

+0

@boski是。那很好 –