繁体   English   中英

无法通过Java Web Service返回数组

[英]Trouble returning an array through Java Web Service

我试图返回一个对象,该对象具有几个字符串以及另一个字符串数组(我保证这是有原因的)。 我遇到的麻烦是,当我用SoapUI测试我的方法时,我只会得到Strings。 字符串数组似乎完全丢失了。 任何线索我在做什么错? 我的课看起来像这样...

public class EmailListing {
  public String type;
  public String category;
  public String[] emails;

  public EmailListing() {
    emails = new String[1];
  }

  public void setEmailList(String emaillist) {
    this.emails = emaillist.split("\\|");
  }
}

在使用此类的Web服务函数中,执行以下操作:

public EmailListing getEmailListing(int id) {
  EmailListing el = new EmailListing();
  try {
    // get data from the database
    // ...
    //
    while(rs.next()) {
      el.type = rs.getString("type");
      el.category = rs.getString("category");
      el.setEmailList(rs.getString("emaillist"));
    }
  } catch(...) {
    ...
  }
  return el;
}

但是,在测试此服务时,我看到的唯一信息是类型和类别。 :(

编辑:打印方法和服务器端输出的结果。

public void print() {
  StringBuffer sb = new StringBuffer();
  sb.append("Emails\n");
  for(int i = 0; i < emails.length; i++) {
    sb.append("  " + emails[i] + "\n");
  }
  System.out.println(sb.toString());
}

输出看起来像:

Emails
  XXXXX@gmail.com
  XXXXXXX@gmail.com

编辑:添加收到的肥皂消息

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"     xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <soapenv:Body>
    <getEmailListingResponse xmlns="http://services.test.com">
      <getEmailListingReturn>
        <type>data</type>
        <category>data</category>
      </getEmailListingReturn>
    </getEmailListingResponse>
  </soapenv:Body>
</soapenv:Envelope>

调试它,看看您是否真正得到了“ emailList”,如果是这样,您可能会错误地拆分它,因为您的代码对我来说看起来不错。

EmailListing外观如何? 我最好的猜测是,您将需要创建某种XmlTypeAdapter

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM