加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – Spring Hateoas,PathVariable和SaxSerialization

发布时间:2020-12-15 00:34:49 所属栏目:Java 来源:网络整理
导读:我实际上正在开发一个小应用程序来训练,我在使用 SpringHateoas使用PathVariable时遇到了问题. 事实上,当我使用类似的东西: @RequestMapping(value = "/directories/{idDirectory}",method = RequestMethod.GET) public DirectoryDTO findById(@PathVariabl
我实际上正在开发一个小应用程序来训练,我在使用 SpringHateoas使用PathVariable时遇到了问题.

事实上,当我使用类似的东西:

@RequestMapping(value = "/directories/{idDirectory}",method = RequestMethod.GET)
    public DirectoryDTO findById(@PathVariable String idDirectory) {
        DirectoryEntity directoryEntity = directoryService.findById(idDirectory);
        DirectoryDTO directoryDto = new DirectoryDTO(directoryEntity);
        directoryDto.add(linkTo(methodOn(DirectoryController.class).findById(idDirectory)).withSelfRel());
        return directoryDto;
    }

我有一个像下面这样的错误:

[com.sun.istack.internal.SAXException2]: unable to marshal type DirectoryDTO
to element because it’s missing an annotation

这是我的DirectoryEntity:

@Document(collection = "directory")
public class DirectoryEntity {

    @Id
    private String id;
    private String name;
    private String path;
    private List<DirectoryEntity> childrenDirectories;
    private DirectoryEntity parentDirectory;
    private List<FileEntity> fileEntities;

/* Get/set omitted */
}

和DTO:

public class DirectoryDTO extends Resource<DirectoryEntity> {


    public DirectoryDTO(DirectoryEntity content,Link... links) {
        super(content,links);
    }

    public DirectoryDTO(DirectoryEntity content,Iterable<Link> links) {
        super(content,links);
    }
}

我究竟做错了什么 ?

解决方法

您必须在DirectoryDTO中添加@XmlRootElement(name =“directoryEntity”)的注释.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读