在写接口时需要返回xml类型的数据,需要在接口方法上添加@Produces注解,代码如下:
@GET
@Path("getCrmManageSellers")
@Produces(MediaType.APPLICATION_XML)
//@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
public List<CrmManageSellerBean> getCrmManageSellers(@QueryParam("projectId") String projectId)
{
List<CrmManageSellerBean> cManageSellers = new ArrayList<CrmManageSellerBean>();
try {
//根据projectId查询商家信息
List<CrmManageSeller> cSellers = crmManageSellerService.getCrmManageSellersByProjectId(projectId);
//Project project = this.projectService.findProjectById(Long.valueOf(projectId));
if(cSellers != null)
{
for(CrmManageSeller cSeller : cSellers)
{
//周边商家资源
CrmManageSellerBean bean = new CrmManageSellerBean();
//商品文件表,存放logo地址
TbgGoodsFile logoFile = new TbgGoodsFile();
//获取logo信息
Long sellerId = cSeller.getSellerId();
//type:4,商家;rectId:关联id
Map<String, Object> map = LittleUtils.getMap("type",4,"rectId",sellerId);
//查询商家的logo信息
List<TbgGoodsFile> logoFiles = tbgGoodsFileService.findAll(map);
if(logoFiles.size() > 0)
{
logoFile = logoFiles.get(0);
//cSeller.setLogoFilePath(logoFile.getFilePath());
}
bean.setAddress(cSeller.getAddress());
bean.setBusinessName(cSeller.getSellerName());
bean.setLogoFilePath(logoFile.getFilePath());
bean.setPhone(cSeller.getTelNo());
cManageSellers.add(bean);
}
}
} catch (Exception e) {
logger.info("获取商家列表失败!");
e.printStackTrace();
}
return cManageSellers;
}
这里的CrmManageSellerBean是专门定义的一个bean,用来作为xml的根元素,需要在此类定义时加上@XmlRootElement注解,代码如下:
@XmlRootElement(name = "crmManageSeller")
public class CrmManageSellerBean {
代码块
}
下面是网上查到的资料:
@Produces(MediaType.APPLICATION_XML):指生成xml类型的数据。
XmlRootElement: 将类或枚举类型映射到 XML 元素。JAXB中的注解,用来根据java类生成xml内容。
当使用 @XmlRootElement 注释对顶层类或枚举类型进行注释时,类型值被表示为 XML 文档中的 XML 元素。
暂时就这么多~