繁体   English   中英

JAX-RS /泽西岛:java.lang.ClassCastException-无法转换为javax.xml.bind.JAXBElement

[英]JAX-RS/Jersey: java.lang.ClassCastException - cannot be cast to javax.xml.bind.JAXBElement

我将应用程序分离为通过restfull Web服务进行通信的前端和后端模块。 不幸的是,这段代码出了问题,我从后端部分得到了:

java.lang.ClassCastException: com.rrd.ecomdd.data.SharedFile cannot be cast to javax.xml.bind.JAXBElement 

前端代码段:

@Override
public void share(Set<SharedFile> fileSet) {
    apiTarget.path(ApiConstant.FILESERVICE)
            .path(ApiConstant.FILESERVICE_SHARE)
            .request(MediaType.APPLICATION_JSON_TYPE.withCharset("UTF-8"))
            .post(Entity.entity(fileSet.toArray(new SharedFile[0]), MediaType.APPLICATION_JSON_TYPE.withCharset("UTF-8")), new GenericType<Set<SharedFile>>() {
            });
}

后端代码段

@POST
@Path(ApiConstant.FILESERVICE_SHARE)
@Produces("application/json; charset=UTF-8")
@Consumes("application/json; charset=UTF-8")
public List<SharedFile> share(SharedFile[] sharedList) {
    for (SharedFile s : sharedList) {
        fileService.share(s);
    }
    return Arrays.asList(sharedList);
}

SharedFile类:

public class SharedFile {

  private Long id;
  private User user;
  private ManagedFile file;
  private UUID uuid = UUID.randomUUID();

  public SharedFile(User user, ManagedFile file) {
    this.user = user;
    this.file = file;
  }

  public SharedFile() {
  }
  //getters, setters, equals and hashcode below

}

任何想法如何解决这一问题?

尝试注释此处提到的类及其属性:

@XmlRootElement
public class SharedFile {

  @XmlElement
  private Long id;

  @XmlElement
  private User user;

  @XmlElement
  private ManagedFile file;

进一步了解: http : //docs.oracle.com/javaee/6/tutorial/doc/gkknj.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM