java.lang.ClassCastException:org.ksoap2.serialization.SoapPrimitive不能转换为org.ksoap2.serialization.SoapObject [英] java.lang.ClassCastException: org.ksoap2.serialization.SoapPrimitive cannot be cast to org.ksoap2.serialization.SoapObject
本文介绍了java.lang.ClassCastException:org.ksoap2.serialization.SoapPrimitive不能转换为org.ksoap2.serialization.SoapObject的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我做的SOAP解析的机器人。这些都是我需要同时做解析以下步骤 1)我下载的 ksoap2-机器人组装-2.4-JAR-与依存关系(1)的.jar 。 2)然后我用这本code,但我得到这个错误。
** java.lang.ClassCastException:org.ksoap2.serialization.SoapPrimitive不能转换为org.ksoap2.serialization.SoapObject **
下面是我的code。
包com.example.networkconnectivity;
进口org.ksoap2.SoapEnvelope;
进口org.ksoap2.serialization.SoapObject;
进口org.ksoap2.serialization.SoapPrimitive;
进口org.ksoap2.serialization.SoapSerializationEnvelope;
进口org.ksoap2.transport.AndroidHttpTransport;
进口android.app.Activity;
进口android.app.ProgressDialog;
进口android.content.Context;
进口android.net.ConnectivityManager;
进口android.net.NetworkInfo;
进口android.os.AsyncTask;
进口android.os.Bundle;
进口android.util.Log;
进口android.widget.Toast;
公共类MainActivity延伸活动{
私有静态最后弦乐SOAP_ACTION =http://wsendpoints.bbrailapps.firstgroup.com/getVersion;
私有静态最后弦乐METHOD_NAME =的getVersion;
私有静态最后弦乐NAMESPACE =http://wsendpoints.bbrailapps.firstgroup.com;
私有静态最后字符串的URL =http://railapps.firstgroup.com/FirstGroupRailApps/services/RailAppsCAWS?wsdl;
私人SoapObject resultRequestSOAP = NULL;
@覆盖
保护无效的onCreate(包savedInstanceState){
super.onCreate(savedInstanceState);
的setContentView(R.layout.activity_main);
的System.out.println(=====================+ haveNetworkConnection());
新的AsyncTask<虚空,虚空,字符串>(){
ProgressDialog对话框=新ProgressDialog(MainActivity.this);
在preExecute保护无效(){
dialog.show();
};
保护字符串doInBackground(无效[] PARAMS){
resultRequestSOAP =新SoapObject(命名空间METHOD_NAME);
SoapSerializationEnvelope envp =新SoapSerializationEnvelope(
SoapEnvelope.VER11);
envp.dotNet = TRUE;
envp.setOutputSoapObject(resultRequestSOAP);
AndroidHttpTransport androidHttpTransport =新AndroidHttpTransport(
URL);
尝试 {
androidHttpTransport.call(SOAP_ACTION,envp);
SoapPrimitive resultsString =(SoapPrimitive)envp.getResponse();
返回resultRequestSOAP.toString();
}赶上(例外五){
Log.i(WS错误 - >中,e.toString());
返回e.toString();
}
};
保护无效onPostExecute(字符串结果){
dialog.dismiss();
Toast.makeText(MainActivity.this,
检查网络connectivety+结果,
Toast.LENGTH_LONG).show();
};
}。执行();
}
公共布尔haveNetworkConnection(){
布尔haveConnectedWifi = FALSE;
布尔haveConnectedMobile = FALSE;
ConnectivityManager厘米=(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
的NetworkInfo []的NetInfo = cm.getAllNetworkInfo();
对于(的NetworkInfo妮:NetInfo的){
如果(ni.getTypeName()。equalsIgnoreCase(WIFI))
如果(ni.isConnected())
haveConnectedWifi = TRUE;
如果(ni.getTypeName()。equalsIgnoreCase(手机))
如果(ni.isConnected())
haveConnectedMobile = TRUE;
}
返回haveConnectedWifi || haveConnectedMobile;
}
}
解决方案
唯一的例外是:
resultRequestSOAP =(SoapObject)envp.getResponse();
由于你不能施放的响应得到形式 SoapSerializationEnvelope
到 SoapObject
I am doing soap parsing in android .These are the following steps I take while doing parsing 1) I am download ksoap2-android-assembly-2.4-jar-with-dependencies (1).jar . 2) Then I used this in this code But I am getting this error .
**java.lang.ClassCastException: org.ksoap2.serialization.SoapPrimitive cannot be cast to org.ksoap2.serialization.SoapObject**
Here is my code.
package com.example.networkconnectivity;
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapPrimitive;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.AndroidHttpTransport;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;
public class MainActivity extends Activity {
private static final String SOAP_ACTION = "http://wsendpoints.bbrailapps.firstgroup.com/getVersion";
private static final String METHOD_NAME = "getVersion";
private static final String NAMESPACE = "http://wsendpoints.bbrailapps.firstgroup.com";
private static final String URL = "http://railapps.firstgroup.com/FirstGroupRailApps/services/RailAppsCAWS?wsdl";
private SoapObject resultRequestSOAP = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
System.out.println("=====================" + haveNetworkConnection());
new AsyncTask<Void, Void, String>() {
ProgressDialog dialog = new ProgressDialog(MainActivity.this);
protected void onPreExecute() {
dialog.show();
};
protected String doInBackground(Void[] params) {
resultRequestSOAP = new SoapObject(NAMESPACE, METHOD_NAME);
SoapSerializationEnvelope envp = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
envp.dotNet = true;
envp.setOutputSoapObject(resultRequestSOAP);
AndroidHttpTransport androidHttpTransport = new AndroidHttpTransport(
URL);
try {
androidHttpTransport.call(SOAP_ACTION, envp);
SoapPrimitive resultsString = (SoapPrimitive)envp.getResponse();
return resultRequestSOAP.toString();
} catch (Exception e) {
Log.i("WS Error->", e.toString());
return e.toString();
}
};
protected void onPostExecute(String result) {
dialog.dismiss();
Toast.makeText(MainActivity.this,
"Check Network connectivety" + result,
Toast.LENGTH_LONG).show();
};
}.execute();
}
public boolean haveNetworkConnection() {
boolean haveConnectedWifi = false;
boolean haveConnectedMobile = false;
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo[] netInfo = cm.getAllNetworkInfo();
for (NetworkInfo ni : netInfo) {
if (ni.getTypeName().equalsIgnoreCase("WIFI"))
if (ni.isConnected())
haveConnectedWifi = true;
if (ni.getTypeName().equalsIgnoreCase("MOBILE"))
if (ni.isConnected())
haveConnectedMobile = true;
}
return haveConnectedWifi || haveConnectedMobile;
}
}
解决方案
The exception is on :
resultRequestSOAP = (SoapObject) envp.getResponse();
Because you can't cast the response get form SoapSerializationEnvelope
into SoapObject
这篇关于java.lang.ClassCastException:org.ksoap2.serialization.SoapPrimitive不能转换为org.ksoap2.serialization.SoapObject的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文