当我调用使用CXF构建的特定的restful服务方法时,我收到以下错误,有人知道为什么以及如何解决它?
发生JAXBException:类com.octory.ws.dto.ProfileDto也不是它的任何超类都知道这个上下文...
以下是服务方法和相关的DTO:
public class Service {
public Response results() {
Collection<ProfileDto> profilesDto = new ArrayList<ProfileDto>();
...
SearchResultDto srd = new SearchResultDto();
srd.setResultEntities(profilesDto); // Setting profilesDto collection as resultEntities
srd.setResultSize(resultSize);
return Response.ok(srd).build();
}
}
Run Code Online (Sandbox Code Playgroud)
SearchResultDto:
@XmlRootElement(name="searchResult")
public class SearchResultDto {
private Collection resultEntities;
private int resultSize;
public SearchResultDto() { }
@XmlElementWrapper(name="resultEntities")
public Collection getResultEntities() {
return resultEntities;
}
public void setResultEntities(Collection resultEntities) {
this.resultEntities = resultEntities;
}
public int getResultSize() {
return resultSize;
}
public void …Run Code Online (Sandbox Code Playgroud) 我实际上正在开发一个小应用程序来训练,我在使用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;
}
Run Code Online (Sandbox Code Playgroud)
我有一个像下面这样的错误:
[com.sun.istack.internal.SAXException2]:无法将DirectoryDTO类型封送到元素,因为它缺少注释
这是我的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 */
}
Run Code Online (Sandbox Code Playgroud)
和DTO:
public class DirectoryDTO extends Resource<DirectoryEntity> {
public DirectoryDTO(DirectoryEntity content, Link... links) {
super(content, links);
}
public DirectoryDTO(DirectoryEntity content, …Run Code Online (Sandbox Code Playgroud)