Właśnie opracowuję małą aplikację do szkolenia i mam problem z wykorzystaniem Spring Hateoas przy użyciu PathVariable.Wiosenne Hateopy, PathVariable i SaxSerialization
W rzeczywistości, kiedy używać coś takiego:
@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;
}
mam błąd jak na następujący:
[com.sun.istack.internal.SAXException2]: nie marszałek typu DirectoryDTO do elementu, ponieważ brakuje adnotacji
Oto mój 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 */
}
A 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);
}
}
Co robię źle?
Czy to "RestController"? W przeciwnym razie prawdopodobnie będziesz musiał dodać '@ ResponseBody' do deklaracji metody. – woemler
to RestController, przepraszam, nie powiedziałem tego. – mfrachet
Spróbuj dodać adnotację @XmlRootElement do swojej klasy DirectoryDTO. –