Web服务多次返回父标记

时间:2016-04-08 05:09:06

标签: java xml web-services soap

我有一个webservice,它从数据库中获取详细信息并返回到调用系统。特定标记的输出可以有多个项目(父标记将有多个项目)但是它会一次又一次地返回相同的字段。可以有人请帮帮忙。

当前输出

<emergencyEmails >raed@gmail.com</emergencyEmails >
<emergencyEmails >rad@gmail.com</emergencyEmails >
<emergencyEmails >read@gmail.com</emergencyEmails >

我希望它像这样

<emergencyEmails >
<item>raed@gmail.com</item>
<item>rad@gmail.com</item>
<item>read@gmail.com</item>
</emergencyEmails >

电子邮件字段定义为字符串数组

package com.business.services;

import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;

@XmlType(propOrder={"companyId", "emergencyEmails", "language",     "normalEmails", "timezone"})
public class ProfileDetails
{

private String companyId = null;

private String[] emergencyEmails = null;

private String language = null;



public String getCompanyId()
{
return this.companyId;
}

public void setCompanyId(String companyId)
{
this.companyId = companyId;
}

public String[] getEmergencyEmails()
{
return this.emergencyEmails;
}

public void setEmergencyEmails(String[] emergencyEmails)
{
this.emergencyEmails = emergencyEmails;
}

public String getLanguage()
{
return this.language;
}

public void setLanguage(String language)
{
this.language = language;
}

}

1 个答案:

答案 0 :(得分:0)

您可以使用以下注释将数组“包装”到元素中:

@XmlElementWrapper(name="wrapper_tag_name")
@XmlElement(name="element_tag_name")

如您所见, @XmlElementWrapper 表示包装元素名称,而 @XmlElement 指定每封电子邮件的实际标记名称。

现在,如果您为电子邮件注释getter方法,例如

@XmlElementWrapper(name="emergencyEmails")
@XmlElement(name="item")
public String[] getEmergencyEmails() {
    return emergencyEmails;
}

你应该没事。 注释字段本身的其他选项,在这种情况下,类的 @XmlAccessorType(XmlAccessType.FIELD)可能是一个解决方案