1

Android Java を WCF サービスに接続しました。現在、WCF サービスからプロジェクトにデータを取得しようとしています。

グループと呼ばれるクラスに解析する必要がある C# の DataTable タイプに問題があります。

今、シリアライゼーションでエラーが発生しました:

java.lang.ClassCastException: org.ksoap2.serialization.SoapObject は org.ksoap2.serialization.SoapPrimitive にキャストできません

Web サービス (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();
      }
}
4

1 に答える 1