簡體   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