这是我的网络服务代码
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;
}
}
我想返回一个包含 String 对象的数组列表
但它给出了以下错误
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
最佳答案
我也遇到了同样的问题,我尝试了很多,终于成功了。据我所知,你不能在Web服务中直接返回ArrayList,因为ArrayList只是Java的一个概念。 您需要为 arraylist 创建一个单独的 POJO 类
POJO 类:-
public class ResponseDataArrayList {
ArrayList list;
public ArrayList getList() {
return list;
}
public void setList(ArrayList list) {
this.list = list;
}
}
现在您需要对实现方法进行一些小更改。只需使用setter方法设置数组列表即可。还将方法的返回类型更改为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;
}
现在相应地更改 WSDL 文件。如果您使用 Eclipse 运行应用程序,则只需右键单击项目 -> 在服务器上运行。
希望对你有帮助。
关于java - 无法从 Web 服务返回数组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20614095/