首页 > 解决方案 > SpringBoot:获取方法不产生预期的 XML 元素

问题描述

我有一个使用 Spring Boot 实现的 REST 服务,它返回一个对象列表。响应是 XML 类型

@RequestMapping(value = "/member/products/{memberNumber}", produces = {
      "application/xml", "text/xml"})
public List<MemberProduct> getMemberProducts
      (@PathVariable String memberNumber,
          @RequestHeader(USER_CONTEXT_HEADER_PARAM) String userContext) {
    validateUserContext(userContext);
    return repository.findByMemberNumber(memberNumber)
        .map(member -> {
          return member.getMemberProducts();
        })
        .orElseThrow(() ->
            new MemberNotFoundException(memberNumber));
  }

我期望的响应 XML 是格式

<MemberProducts>
  <MemberProduct>Value1</MemberProduct>
  <MemberProduct>Value2</MemberProduct>
</MemberProducts>

但我得到的是以下格式的响应

<List>
   <Item>Value1</Item>
   <Item>Value2</Item>
</List>

Member类有其他方法,如memberTaxDetails, memberAddresses, memberContactDetails. Member检索对象时,我可以按预期看到产品。这Member仅适用于 Collection 对象。有没有办法控制正确的格式?

标签: xmlspring-bootjaxbspring-restcontroller

解决方案


推荐阅读