当前位置:  开发笔记 > 编程语言 > 正文

JAXB异常:此上下文不知道的类

如何解决《JAXB异常:此上下文不知道的类》经验,为你挑选了2个好方法。

当我调用使用CXF构建的特定的restful服务方法时,我收到以下错误,有人知道为什么以及如何解决它?

发生JAXBException:类com.octory.ws.dto.ProfileDto也不是它的任何超类都知道这个上下文...

以下是服务方法和相关的DTO:

public class Service {
   public Response results() {
   Collection profilesDto = new ArrayList();
   ...
   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() { }
    ...
}

lexicore.. 37

您的ProfileDto课程未被引用SearchResultDto.尝试添加@XmlSeeAlso(ProfileDto.class)SearchResultDto.



1> lexicore..:

您的ProfileDto课程未被引用SearchResultDto.尝试添加@XmlSeeAlso(ProfileDto.class)SearchResultDto.


如果该类是`SearchResultDto `,其中T是通用的,该怎么办?
@Hendy Irawan - 注释也可以添加到Web服务本身(即在@@ WebService`注释之后).如果你正在处理泛型,那么在那个阶段声明其他类型更有意义,你应该知道完整的类型集.

2> user64141..:

我有这个错误,因为我在这行代码中注册了错误的类:

JAXBContext context = JAXBContext.newInstance(MyRootXmlClass.class);

推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有