Когда я называю конкретный успокоительный сервисный метод, который создается с помощью CXF, я получаю следующую ошибку, кто-либо знает, почему и как разрешить его?
JAXBException произошел: класс com.octory.ws.dto. ProfileDto, ни любой его суперкласс известны этому контексту...
Следующее является сервисным методом и соответствующим DTOs:
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();
}
}
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 setResultSize(int resultSize) {
this.resultSize = resultSize;
}
}
ProfileDto:
@XmlRootElement(name="profile")
public class ProfileDto {
...
...
public ProfileDto() { }
...
}
Ваш класс ProfileDto
не ссылается на SearchResultDto
. Попробуйте добавить @XmlSeeAlso(ProfileDto.class)
в SearchResultDto
.