我刚开始使用Glassfish,并尝试设置一个可以接受JSON字符串并解析它并返回正确结果的restful Web服务。 Web服务看起来像这样:
@Path("/process")
public class SurveyResponseProcessor
{
@GET
@Produces("text/plain")
public String getReferrals()
{
return "Only POST operation are supported.";
}
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public String postReferrals(ResponseDetails details)
{
return "done - " + details.getSurveyId();
}
}
我期望获得JSON的课程:
@XmlRootElement
public class ResponseDetails
{
@XmlElement String providerId;
@XmlElement String surveyId;
@XmlElement String respondentId;
public String getProviderId()
{
return providerId;
}
public void setProviderId(String providerId)
{
this.providerId = providerId;
}
public String getSurveyId()
{
return surveyId;
}
public void setSurveyId(String surveyId)
{
this.surveyId = surveyId;
}
public String getRespondentId()
{
return respondentId;
}
public void setRespondentId(String respondentId)
{
this.respondentId = respondentId;
}
}
POST正文:{"providerId":"1","surveyId":"5","respondentId":"23"}
错误消息:
<p><b>message</b>Internal Server Error</p><p><b>description</b>The server encountered an internal error that prevented it from fulfilling this request.</p>
任何日志中都没有显示任何内容。
编辑添加:如果我将其设置为使用文本并更改参数,这可以正常工作,告诉我这不是路由问题。我有可能没有在某处设置JAXB或Jersey吗?如果重要的话,我正在使用IntelliJ。