2011-05-02 22 views
0

我有一個SOAP請求到一個帶有Java的PHP-SOAP-Webservice(使用Android SDK)的問題 我有一個SOAP-Helper類。這個類連接到SOAP服務並從服務器獲取所有原始數據。 在這個類我實現了以下方法:具有向量的SOAP-Request,Cast-Error

@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; 
    } 
} 

然後,我有一類從輔助類獲取數據。這裏是圖層的類。

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); 
    } 
} 

現在我有這個轉換錯誤:

05-02 13:11:56.866: ERROR/AndroidRuntime(988): Caused by: java.lang.ClassCastException: java.util.Vector 

與調試器,我看到矢量的所有數據。矢量不是空的。所有數據都是正確的。

任何想法?

謝謝 搶從soapEnvelope.getResponse()返回

+0

你可以顯示完整的堆棧跟蹤嗎? – 2011-05-02 13:45:33

回答

0

最有可能的對象不是Vector。嘗試使用Collection<SoapObject>