java - 无法从 Web 服务返回数组列表

标签 java web-services

这是我的网络服务代码

    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/

相关文章:

java - 多对多关联。数据不删除

java - ObjectInputStream 自定义类加载器反序列化问题 : resolveClass() not called

java - 为什么 Weblogic 工作管理器拒绝工作

java - 通过 https 连接时出现 SSL 握手异常

java - 将 WebService (JAX-RS) 与 Java Stripes 集成

asp.net - Azure API应用程序与移动应用程序与Web应用程序

java - 在多台机器上跨 tomcat 共享 war

java - Hibernate Criteria 从日期中提取年份

javascript - 使用 JavaScript 调用需要身份验证的 SOAP Web 服务

java - 从 WSDL 和 XSD 文件生成包中不同于命名空间的 Web 服务 Java 类