2013-12-16 42 views
1

这里是我的Web服务代码无法从Web服务返回的ArrayList

package com.notification; 

import java.util.ArrayList; 
import java.util.List; 

public class NotificationMessage { 
public List<String> message(){ 
    List<String> al = new ArrayList<String>(); 
    al.add("Meeting at 12"); 
    al.add("School at 10am on 6"); 
    al.add("Holiday on 8th"); 
    return al; 
} 
} 

我想返回一个包含字符串对象

一个ArrayList,但它提供了以下错误

Exception: java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.lang.String Message: java.util.ArrayList cannot be cast to java.lang.String 
+0

你正在使用什么web服务框架或机制 –

+0

显示你的客户端代码 –

+0

我正在使用eclipse测试这个代码。我没有写任何客户端代码,因为我的服务本身没有返回对象 – user2291144

回答

1

我同样的问题,我试了很多,最终成功。据我所知,你不能在web服务中返回直接的数组列表,因为ArrayList只是一个Java概念。 您需要创建一个单独的POJO类ArrayList中

POJO类: -

public class ResponseDataArrayList { 
    ArrayList list; 
    public ArrayList getList() { 
     return list; 
    } 

    public void setList(ArrayList list) { 
     this.list = list; 
    } 
} 

现在你需要一个小的变化,实现method.Just使用二传手method.Also改变返回类型设置你的ArrayList POJO类类型的方法。这些步骤是最重要的。

public ResponseDataArrayList getProdList(){ 

     ArrayList al=new ArrayList();   
     al.add("Meeting at 12"); 
     al.add("School at 10am on 6"); 
     al.add("Holiday on 8th"); 

     ResponseDataArrayList objwrapper=new ResponseDataArrayList(); 
     objwrapper.setList(al); 

     return objwrapper; 
    } 

现在相应变化。如果你使用的是Eclipse,然后只需右键单击项目运行的应用程序的WSDL文件 - >服务器上运行。

希望是会帮助你的。