public ArrayList<String> callWebService()throws MalformedURLException, Exception {     
        String serviceUrl = "http://localhost:8080/server/services/Test?wsdl";
        URL ServerUrl = null;
        try{   
            ServerUrl = new URL(serviceUrl);   
        }catch (MalformedURLException e1){   
            e1.printStackTrace();   
        }   
        Client client = null; 
        Object []returnMessage=null;
        try{   
            client = new Client(ServerUrl);     
            returnMessage = client.invoke("getDx",new Object[]{"1"});
        }catch (Exception e){   
            e.printStackTrace();   
        }
        @SuppressWarnings("unchecked") 
        ArrayList<String> receiveMessage = (ArrayList<String>)returnMessage[0];
        
        //ArrayList<String> receiveMessage  = (ArrayList<String>)client.invoke("getDx",new Object[]{"1"})[0];        return receiveMessage;   
    }
客户端代码如上
现在是报类型转换错误
java.lang.ClassCastException: com.sun.org.apache.xerces.internal.dom.DocumentImpl
ArrayList<String> receiveMessage = (ArrayList<String>)returnMessage[0];
这句错误
请问如何修改  谢谢

解决方案 »

  1.   

    经过测试发现   returnMessage[0] 已经不是ArrayList类型了
    是object   不明白是怎么回事啊
    请教  请教!
      

  2.   

    List等集合类型属于java特有的数据类型,而webservice支持异构系统之间的数据通信,所以这个建议使用数组也是可以解决的。
    返回list等也有办法,但我还不会,抱歉!
      

  3.   

    webservice 返回类型只是支持原始数据类型,字符串,还有数组,如果是返回List类型的话,要自己去定义,lz可以采用xfire去调用webservice服务,能够很好的接受list类型。