当我调用一个特殊的宁静服务方法时,它使用CXF构建,我得到以下错误,任何人都知道为什么以及如何解决它?JAXB例外:本类不知道的类
发生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();
}
}
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() { }
...
}
添加@XmlSee也解决了问题;我在印象之下只有当被引用的类是一个子类时才需要注释。谢谢。 – ABK07 2010-07-13 18:48:09
如果班级是'SearchResultDto',那么T是通用的呢? –
2012-08-16 22:30:39
@Hendy Irawan - 也可以将注释添加到Web服务本身(即在“@ WebService”注释之后)。如果您正在处理泛型,那么在该阶段声明其他类型更有意义,您应该知道全部类型。 – CurtainDog 2013-04-29 05:44:24