0
Java (with Android SDK)가있는 PHP-SOAP-Webservice에 대한 SOAP 요청에 문제가 있습니다. SOAP-Helper 클래스가 있습니다. 이 클래스는 SOAP-Service에 연결하고 서버에서 모든 원시 데이터를 가져옵니다. 벡터가있는 SOAP 요청, 캐스트 오류
@SuppressWarnings("unchecked")
public static Vector<SoapObject> getLayers(){
try {
final String SOAP_ACTION = "http://www.XYZ.ch/YYY/webservice.php/getLayers";
final String METHOD_NAME = "getLayers";
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
SoapSerializationEnvelope soapEnvelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
soapEnvelope.dotNet = true;
soapEnvelope.setOutputSoapObject(request);
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
androidHttpTransport.call(SOAP_ACTION, soapEnvelope);
Vector<SoapObject> result = (Vector<SoapObject>)soapEnvelope.getResponse();
return result;
} catch (Exception e) {
return null;
}
}
가 그럼 난 도우미 클래스에서 데이터를 가져 오는 클래스가 : 이 클래스에서 나는 다음과 같은 방법을 구현했습니다. 여기 레이어의 클래스가 있습니다. 내가 벡터의 모든 데이터를 볼 디버거와
05-02 13:11:56.866: ERROR/AndroidRuntime(988): Caused by: java.lang.ClassCastException: java.util.Vector
:
public void getLayers(){
Vector<SoapObject> vectorLayers = SOAPHelper.getLayers();
ArrayList<HashMap<String, Object>> myList = new ArrayList<HashMap<String, Object>>();
for(int i=0; i<vectorLayers.size(); i++){
HashMap<String, Object> layers = new HashMap<String, Object>();
layers.put("layerId", vectorLayers.get(i).getProperty(0));
layers.put("layerName", vectorLayers.get(i).getProperty(1));
myList.add(layers);
}
}
지금 나는이 캐스팅 오류가 있습니다. 벡터가 비어 있지 않습니다. 모든 데이터가 정확합니다.
아이디어가 있으십니까?
는
전체 스택 추적을 표시 할 수 있습니까? –