简体   繁体   English

Spring Hateoas,PathVariable和SaxSerialization

[英]Spring Hateoas, PathVariable and SaxSerialization

I m actually developping a little application to train, and I m facing a problem using Spring Hateoas using PathVariable. 我实际上开发了一个小应用程序来训练,我在使用PathHariable时使用Spring Hateoas遇到了问题。

In fact, when I use something like : 事实上,当我使用类似的东西:

   @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;
    }

I've got an error like the following one : 我有一个像下面这样的错误:

[com.sun.istack.internal.SAXException2]: unable to marshal type DirectoryDTO to element because it's missing an annotation [com.sun.istack.internal.SAXException2]:无法将DirectoryDTO类型封送到元素,因为它缺少注释

Here my DirectoryEntity : 这是我的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 */
}

And the DTO : 和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);
    }
}

What am I doing wrong ? 我究竟做错了什么 ?

您必须在DirectoryDTO中添加@XmlRootElement(name = "directoryEntity")的注释。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM