Android de yaptıgım uygulamada basıt bir string i android tarafından çagırabilmiştim.Yanlız array list göndermeye çaliştigim zaman android tarafında hata verıyor. Web service şöyle görünüyor;

 @WebMethod(operationName = "operation")
    public List operation(@WebParam(name = "sayi1") int sayi1, @WebParam(name = "sayi2") int sayi2)   {
        List l=new ArrayList();
        l.add(sayi1);
        l.add(sayi2);
        return l;

Androıd tarafında kod tarafı şöyle;

private void WebService() {
        try {
            Thread networkThread = new Thread() {
                @Override
                public void run() {
                    try {
                        SoapObject request = new SoapObject(NAMESPACE,
                                METHOD_NAME);
                        //request.addProperty("name", sonuc.getText().toString());
                        request.addAttribute("sayi1", 12);
                        request.addAttribute("sayi2", 12);
                        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 = request.getProperty(0).toString();

                        runOnUiThread(new Runnable() {
                            public void run() {
                                Toast ImageToast = new Toast(getBaseContext());
                                LinearLayout toastLayout = new LinearLayout(
                                        getBaseContext());
                                toastLayout
                                        .setOrientation(LinearLayout.HORIZONTAL);
                                ImageView image = new ImageView(
                                        getBaseContext());
                                TextView text = new TextView(getBaseContext());
                                image.setImageResource(R.drawable.ic_launcher);
                                text.setText(envelope.getResponse().ToString());
                                text.setTextColor(Color.BLACK);
                                text.setTextSize(TypedValue.COMPLEX_UNIT_SP, 50);
                                toastLayout.addView(image);
                                toastLayout.addView(text);
                                ImageToast.setView(toastLayout);

                                ImageToast.setGravity(Gravity.CENTER, 0, 0);
                                ImageToast.setDuration(Toast.LENGTH_LONG);
                                ImageToast.show();

                            }
                        });
                    } catch (Exception e) {

                        Toast.makeText(getApplicationContext(), e.toString(),
                                Toast.LENGTH_LONG).show();
                    }
                }
            };
            networkThread.start();

        } catch (Exception e) {
            Toast.makeText(getApplicationContext(), e.toString(),
                    Toast.LENGTH_LONG).show();

        }

nerde yanlış yapıyorum acaba? teşekkürler.

soruldu: 24 Nis '13, 08:43

escobar's gravatar image

escobar
71449
cevap kabul oranı: 25%

değiştirildi: 02 May '13, 09:08

%C3%B6zcanacar's gravatar image

özcanacar ♦♦
17.2k59183183


Öncelikle bu satırı

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

bununla değiştirmen lazım:

SoapObject response = (SoapObject) envelope.getResponse();

Ayrıca SoapUi tarzı bir uygulama ile webservisi test ettiğinde gelen soap mesajını [XML'i] de buraya yazarsan daha net bir cevap verebiliriz.

permanent link

cevaplandı: 24 Nis '13, 09:02

OguzOzkeroglu's gravatar image

OguzOzkeroglu
2.5k32939
cevap kabul oranı: 40%

Hocam Soap request şu şekilde; <?xml version="1.0" encoding="UTF-8"?><s:envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> <s:header/> <s:body> <ns2:operation xmlns:ns2="http://dnzpack/"> <sayi1>12</sayi1> <sayi2>12</sayi2> </ns2:operation> </s:body> </s:envelope>

Soap response şu şekilde;

<s:envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> <s:body> <ns2:operationresponse xmlns:ns2="http://dnzpack/"> <return xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:int">12</return> <return xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:int">12</return> </ns2:operationresponse> </s:body> </s:envelope>

(24 Nis '13, 09:10) escobar escobar's gravatar image

arkadaşlar sorun düzeldi. final SoapObject response = (SoapObject)envelope.bodyIn; Bu şekilde kullanmak gerekiyormuş.

(24 Nis '13, 10:00) escobar escobar's gravatar image
Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×818
×71
×6
×4

Soruldu: 24 Nis '13, 08:43

Görüntüleme: 1,702 kez

Son güncelleme: 02 May '13, 09:08

powered by BitNami OSQA