Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用JAXB和Jersey从其他类生成包含子节点的XML_Java_Xml_Xml Parsing_Jaxb_Jersey - Fatal编程技术网

Java 使用JAXB和Jersey从其他类生成包含子节点的XML

Java 使用JAXB和Jersey从其他类生成包含子节点的XML,java,xml,xml-parsing,jaxb,jersey,Java,Xml,Xml Parsing,Jaxb,Jersey,我尝试使用JAXB和Hibernate从web服务生成XML 主类是Tabla,它有一个Alumno类类型的子节点。我需要使用Tabla类和子节点Alumno的数据生成XML 我接受两种可能性: 1.将Tabla数据链接中的XML链接添加到Alumno XML 2.使用Alumno类的include信息将子节点添加到TablaXML(我更喜欢这个) 我使用此配置尝试了第二个选项,但始终从服务器收到错误500: Tabla类 import java.math.BigDecimal; import

我尝试使用JAXB和Hibernate从web服务生成XML

主类是Tabla,它有一个Alumno类类型的子节点。我需要使用Tabla类和子节点Alumno的数据生成XML

我接受两种可能性: 1.将Tabla数据链接中的XML链接添加到Alumno XML 2.使用Alumno类的include信息将子节点添加到TablaXML(我更喜欢这个)

我使用此配置尝试了第二个选项,但始终从服务器收到错误500:

Tabla类

import java.math.BigDecimal;
import java.util.Date;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import javax.xml.bind.annotation.XmlSeeAlso;

@XmlSeeAlso(Alumno.class)
@XmlAccessorType(XmlAccessType.NONE)
@XmlRootElement(name = "tabla")
@XmlType(propOrder = {"id", "alumno", "fechaInicio" })
public class Tabla implements java.io.Serializable {

    @XmlElement
    private Integer id;
    @XmlElement
    private Alumno alumno;
    @XmlElement
    private Date fechaInicio;

    public Tabla() {
    }

    public Tabla(Integer id,Date fechainicio, Alumno alumno) {
        super();
        this.id = id;
        this.fechaInicio = fechainicio;
        this.alumno = alumno;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Alumno getAlumno() {
        return alumno;
    }

    public void setAlumno(Alumno alumno) {
        this.alumno = alumno;
    }

    public Date getFechainicio() {
        return fechaInicio;
    }

    public void setFechainicio(Date fechainicio) {
        this.fechaInicio = fechainicio;
    }
}
import java.util.Date;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;

@XmlAccessorType(XmlAccessType.NONE)
@XmlRootElement(name = "alumno")
@XmlType(propOrder = {"nombre", "apellidos"})
public class Alumno implements java.io.Serializable {

    @XmlAttribute
    private Integer id;
    @XmlElement
    private String nombre;

    public Alumno() {
    }

    public Alumno(String nombre, String apellidos) {
        this.nombre = nombre;
        this.apellidos = apellidos;
    }

    public Integer getId() {
        return this.id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getNombre() {
        return this.nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public String getApellidos() {
        return this.apellidos;
    }

    public void setApellidos(String apellidos) {
        this.apellidos = apellidos;
    }
}
校友班

import java.math.BigDecimal;
import java.util.Date;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import javax.xml.bind.annotation.XmlSeeAlso;

@XmlSeeAlso(Alumno.class)
@XmlAccessorType(XmlAccessType.NONE)
@XmlRootElement(name = "tabla")
@XmlType(propOrder = {"id", "alumno", "fechaInicio" })
public class Tabla implements java.io.Serializable {

    @XmlElement
    private Integer id;
    @XmlElement
    private Alumno alumno;
    @XmlElement
    private Date fechaInicio;

    public Tabla() {
    }

    public Tabla(Integer id,Date fechainicio, Alumno alumno) {
        super();
        this.id = id;
        this.fechaInicio = fechainicio;
        this.alumno = alumno;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Alumno getAlumno() {
        return alumno;
    }

    public void setAlumno(Alumno alumno) {
        this.alumno = alumno;
    }

    public Date getFechainicio() {
        return fechaInicio;
    }

    public void setFechainicio(Date fechainicio) {
        this.fechaInicio = fechainicio;
    }
}
import java.util.Date;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;

@XmlAccessorType(XmlAccessType.NONE)
@XmlRootElement(name = "alumno")
@XmlType(propOrder = {"nombre", "apellidos"})
public class Alumno implements java.io.Serializable {

    @XmlAttribute
    private Integer id;
    @XmlElement
    private String nombre;

    public Alumno() {
    }

    public Alumno(String nombre, String apellidos) {
        this.nombre = nombre;
        this.apellidos = apellidos;
    }

    public Integer getId() {
        return this.id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getNombre() {
        return this.nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public String getApellidos() {
        return this.apellidos;
    }

    public void setApellidos(String apellidos) {
        this.apellidos = apellidos;
    }
}
Hibernate配置是可以的,因为我试图通过代码从Alumno实体获取一个Tabla的列表,包括Alumno信息和Hibernate信息。所以,当我尝试将Tabla转换为XML时,问题就出现了


我看到您也可以尝试使用XMLAdapter,但我不知道如何实现这种情况。

您不需要混合使用视图模型和DAO。但无论如何,看看下面的文章,从测试中找到更多关于JAX-RSJAXB示例的信息