تمام سوالات سوالات بدون پاسخ سوال بپرسید

در جاوا وقتی پیام soap بازگشتی از ارایه دهنده خدمات وب‌ (webservice)شامل یک آرایه از انواع ابتدایی باشد(مثلا int) چگونه باید آنرا استخراج نمود؟
در تعدادی از منابع ذکر شده است که برای استخراج (deserialization)یک آرایه که در پاسخ به درخواستی از ارایه دهنده خدمات وب در قالب soap برگشته باید با تبدیل نوع (type casting) به Vector به آرایه ارسالی دست یافت.ولی این تبدیل نوع در برنامه من موجب بروز استثناء تبدیل نوع (ClassCastException) با پیام org.ksoap2.serialization.SoapObject شده است.چگونه باید این مشکل را حل نمود؟

1 پاسخ

من قبلا به این مورد برخورده بودم.به نظر می رسد که در این مورد قانون کلی وجود ندارد واحتمالا مساله مربوط به خصوصیات ارایه دهنده خدمات وب است مثلا اینکه مرتب سازی(serialization) در آن به چه صورت باشد(section5 encoded یا literal)و یا ساختار آن به چه شکل باشد(RPC یا Document).
به هر حال بعضی مواقع باید آرایه را به عنوان یک Vector استخراج کرد و در موارد دیگر باید آنرا به عنوان یک SoapObject در نظر گرفت و همزمان با استخراج تک تک عناصر آنها را در آرایه ای قرار داد.فرض کنیم خصوصیت دوم از پاسخ دریافتی یک آرایه باشد.این تکه کد نشان می دهد که چگونه می توان با آرایه دریافتی در پاسخ(response) که شامل اعضایی از نوع int است به عنوان یک SoapObject برخورد کرد:

SoapObject response = (SoapObject)envelope.getResponse();   
SoapObject so = (SoapObject)response.getProperty(2);   
int count = so.getPropertyCount();   
int[] newIntArray = new int[count];   
for (int i = 0; i < count; i++){   
newIntArray[i] = Integer.parseInt(so.getProperty(i).toString());   
}

در مورد اینکه چگونه با آرایه دریافتی می توان به عنوان یک Vector برخورد کرد نیازی به توضیح نیست.

toggle preview



آموزش زبان برنامه نویسی C#
آموزش jquery
آموزش برنامه نویسی
آموزش طراحی وبسایت
آموزش مدیریت وبسایت
آموزش جاوا Java
آموزش پایتون Python
آموزش سی شارپ C#‎
آموزش HTML و CSS
آموزش JavaScript جاوااسکریپت
آموزش jQuery جی کوئری
آموزش ساخت ربات تلگرام
آموزش برنامه‌نویسی PHP
آموزش برنامه‌نویسی اندروید
● آموزش‌های رایگان

سوالات مرتبط

راهنمای استفاده از ویرایشگر
  • *ایتالیک*‌ یا __ایتالیک__
  • **ضخیم** یا __ضخیم__
  • آدرس:[متن](http://url.com/ "عنوان")
  • عکس?![alt متن](/path/img.jpg "عنوان")
  • لیست عددی: 1. Foo 2. Bar
  • برای رفتن به خط بعد، هر جا مایلید که خط جدید شروع شود دو کاراکتر فاصله (space) قرار دهید
  • تگ‌های ساده HTML هم پشتیبانی می‌شوند

تگها:
این سوال را دنبال کنیدتوسط ایمیل: ایمیل شما (باید معتبر باشد, هرگز به دیگران نمایش داده نمیشود):

هنگامی که شما به سیستم وارد شوید،قادر خواهید بود برای بروز رسانی ها مشترک شوید.


توسط RSS:

پاسخها

پاسخها و نظرها