我尝试使用带有Hibernate的JAXB从Web服务生成XML。
主类是Tabla,它有一个类型为Alumno类的子节点。我需要使用来自Tabla类和子节点Alumno的数据生成XML。
我接受两种可能性: 1.从Tabla数据链接添加XML链接到Alumno XML 2.使用Alumno类中的包含信息向Tabla XML添加子节点(我更喜欢这个)。
我尝试使用此配置的第二个选项但总是从服务器获得错误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;
}
}
Hibernate配置正常,因为我尝试通过代码获取Tabla的列表,其中包括来自Alumno实体的Alumno信息和Hibernate lazy正确信息。当我尝试将Tabla编组为XML时,问题就出现了。
我也尝试使用XMLAdapter,但我不知道如何实现这些案例。