Java restjax-rs:服务器错误
我正在用JAX-RS创建一个小Web服务,无法访问GET请求 我只想要XML格式的活动列表 这是我的密码Java restjax-rs:服务器错误,java,web-services,rest,jax-rs,Java,Web Services,Rest,Jax Rs,我正在用JAX-RS创建一个小Web服务,无法访问GET请求 我只想要XML格式的活动列表 这是我的密码 package com.project.test; import javax.xml.bind.annotation.XmlRootElement; import java.util.List; import javax.ws.rs.DefaultValue; import javax.ws.rs.PathParam; import javax.ws.rs.GET; import java
package com.project.test;
import javax.xml.bind.annotation.XmlRootElement;
import java.util.List;
import javax.ws.rs.DefaultValue;
import javax.ws.rs.PathParam;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlSeeAlso;
@XmlRootElement(name = "activite")
@XmlAccessorType(XmlAccessType.FIELD)
public class Activite
{
@XmlElement(name="nomactivite")
private String but;
@XmlElement(name="tranchehoraire", type=TrancheHoraire.class)
private TrancheHoraire trancheHoraire;
@XmlElement(name="lieu")
private String lieu;
//------------------------------------------------------------------------
public Activite(String but,TrancheHoraire trancheHoraire, String lieu)
{
this.but = but;
this.trancheHoraire = trancheHoraire;
this.lieu = lieu;
}
//------------------------------------------------------------------------
public String getBut() { return but; }
public String getLieu() { return lieu; }
public TrancheHoraire getTrancheHoraire() { return trancheHoraire; }
public void setBut(String but) {
this.but = but;
}
public void setTrancheHoraire(TrancheHoraire trancheHoraire) {
this.trancheHoraire = trancheHoraire;
}
public void setLieu(String lieu) {
this.lieu = lieu;
}
}
我的数据库:
package com.project.test;
import java.util.ArrayList;
import java.util.List;
public class ActiviteBD {
private static List<Activite> activites = new ArrayList<Activite>();
static {
activites.add(new Activite("Réunion", new TrancheHoraire(new Date(01, 10, 2015), 2), "Paris"));
activites.add(new Activite("Vacances", new TrancheHoraire(new Date(02, 10, 2015), 2), "Marseille"));
activites.add(new Activite("Resto", new TrancheHoraire(new Date(03, 10, 2015), 2), "Lyon"));
}
public static List<Activite> getActivites() {
return activites;
}
}
还有我的催眠课
package com.project.test;
public class TrancheHoraire
{
private Date date;
private int part_journee;
public String part_journee_v;
public TrancheHoraire(Date date, int part_journee)
{
this.date = date;
this.part_journee = part_journee;
if (part_journee == 1){
this.part_journee_v = "le matin";
}
else{
if (part_journee == 2){
this.part_journee_v = "l' apres-midi";
}
else
{
this.part_journee_v = "erreur";
}
}
}
public Date getDate() { return date; }
public int getpart_journee()
{
return part_journee;
}
@Override
public String toString()
{
return ("Tranche horaire du " + date +" -> " + part_journee_v);
}
}
有关信息,ApplicationConfig包含:
private void addRestResourceClasses(Set<Class<?>> resources) {
resources.add(com.project.test.Agenda.class);
}
提前谢谢你我唯一面临的问题就是这个例外
…IllegalAnnotationsException。。。Activite没有无参数默认构造函数
为了解决这个问题,我只是在Activite
类中添加了一个无参数构造函数
另外,GET请求可能不会遇到这个问题,但POST请求在尝试发送XML时,JAXB也无法创建其他类,因为它们没有arg构造函数。因此,您不妨将它们添加到所有模型类中。以下是服务器的答案:服务器遇到了一个内部错误,使其无法满足此请求。您可以尝试访问该错误吗?哦,还有no-arg构造函数和setter。
package com.project.test;
public class TrancheHoraire
{
private Date date;
private int part_journee;
public String part_journee_v;
public TrancheHoraire(Date date, int part_journee)
{
this.date = date;
this.part_journee = part_journee;
if (part_journee == 1){
this.part_journee_v = "le matin";
}
else{
if (part_journee == 2){
this.part_journee_v = "l' apres-midi";
}
else
{
this.part_journee_v = "erreur";
}
}
}
public Date getDate() { return date; }
public int getpart_journee()
{
return part_journee;
}
@Override
public String toString()
{
return ("Tranche horaire du " + date +" -> " + part_journee_v);
}
}
private void addRestResourceClasses(Set<Class<?>> resources) {
resources.add(com.project.test.Agenda.class);
}
[com.project.airbus.Activite@2d30af8c, com.project.airbus.Activite@7e5dac9c, com.project.airbus.Activite@da9eec7]