2011-07-25 6 views
1

Webサービスの呼び出し中に問題が発生しました。サーバーに.NET Webサービスがあり、KSOAPを使用しています(ksoap2-android-assembly-2.5.7 -jar-with-dependencies.jar)をAndroidにインストールします。 プログラムを実行しているときに、 "org.ksoap2.serialization.SoapPrimitive"という名前の実行時例外があります。KSOAP: "org.ksoap2.serialization.SoapPrimitive"例外の問題

私は私がリンクにreadedオプションを使用してみました:How to call a .NET Webservice from Android using KSOAP2?kSoap2 Android -- Cast Class Exception (SoapObject)が、何も

にこの私のコード私を助けていない:

try{ 
      //Conexión a Web Service 
      SoapObject Solicitud = new SoapObject(NAMESPACE, METODO); 

      PropertyInfo sector = new PropertyInfo(); 
      sector.setName("sector"); 
      sector.setValue(sectorX.toString()); 
      Solicitud.addProperty(sector); 

      SoapSerializationEnvelope Envoltorio = new SoapSerializationEnvelope (SoapEnvelope.VER12); 
      Envoltorio.dotNet = true; 

      Envoltorio.setOutputSoapObject (Solicitud); 

      HttpTransportSE TransporteHttp = new HttpTransportSE(URL); 
      TransporteHttp.call (SOAP_ACTION, Envoltorio); 

      //Obtencion de datos 
      SoapObject resultado = (SoapObject)Envoltorio.getResponse(); 

      final String[] testValues = new String[resultado.getPropertyCount()]; 
      final Number[] serie = new Number[resultado.getPropertyCount()]; 

      for(int i= 0; i< resultado.getPropertyCount(); i++){ 
       String x = ""; 
       SoapObject wii = (SoapObject)resultado.getProperty(i); 
       x += wii.getPropertyAsString(1);     
       testValues[i] = wii.getPropertyAsString(1); 
       x.trim(); 
       serie[i]=Integer.parseInt(x); 
      } 

     ArrayAdapter<String> adaptador = new ArrayAdapter<String>(this, R.layout.lista_sectores, testValues); 
     final ListView LstOpciones = (ListView) findViewById(R.id.LstOpciones); 
     LstOpciones.setAdapter(adaptador); 

     LstOpciones.setOnItemClickListener(new AdapterView.OnItemClickListener() { 

      @Override 
      public void onItemClick(AdapterView<?> parent, View itemClicked, 
        int position, long id) { 
       // TODO Auto-generated method stub 
       TextView textview = (TextView)itemClicked; 
       String strText = textview.getText().toString(); 
       seleccion.setText("Seleccionado: " + strText); 

      } catch (Exception e){ 
     txtMensaje.setText(e.getMessage()); 
      } 

sectorXが、それは私がWSに与えるStringパラメータです。

パラメータなしでWebサービスを試してみました。 パラメータを送信するときに問題が発生します.../

答えて

1

その例外は例外ではありません。あなたはおそらくクラスキャスト例外を取得します。デバッグすると、あなたの応答がSoapObjectであることがわかります。したがって、getPropertyまたはgetAttributeなどを使用します。あなたはブレークポイントを設定する場合は、オブジェクトグラフを参照し、手動で解析コードをアセンブルすることができるようになります。..

たぶんどこかにスタックトレースを投稿..

+1

ええ、それは例外の名前ではありませんが、TextViewに表示されています:) 私はSoapObjectを使用するとテキストに「org.ksoap2.serialization.SoapPrimitive」を使用していますSoapPrimitiveは言った: "org.ksoap2.serialization.SoapObject"。 – K1988

+0

だから、何が起こったのか分かりませんが、これは私がパレメーターを使うときに起こります。私はパラメータなどのないWebサービスを呼び出すことができます。 – K1988

+0

私が言ったように...あなたがwiki上で文書化されているようにデバッグすることによって応答として得られ、それに応じて解析する。 –

0

あなただけの「オブジェクト」の代わりのを使用して試すことができます'SoapObject'を使用します。わたしにはできる。それが役に立てば幸い。

関連する問題