我想创建一个Jersey应用程序,我想将输出传递给Json格式的Web浏览器。以下是代码。我只能以xml格式传递数据,当我更改为“application/json”格式时,出现“HTTP状态500 - 内部服务器错误”。有什么建议?谢谢。Jersey - Rest API(Json格式)
import java.net.URISyntaxException;
import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
@Path("/emp")
public class EmployeeService {
@GET
@Path("/get/{empID}")
@Produces({"application/json"})
public Employee getEmployee(@PathParam("empID") String empID){
Employee employee = new com.rest.employee.model.Employee();
employee.setEmpID(empID);
employee.setName("George");
employee.setEmail("[email protected]");
return employee;
}
}
和另一个Java文件
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlAccessorType(XmlAccessType.NONE)
@XmlRootElement(name="employee")
public class Employee {
public String empID;
public String name;
public String email;
@XmlElement(required=true)
public String getEmpID() {
return empID;
}
public void setEmpID(String empID) {
this.empID = empID;
}
@XmlElement(required=true)
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@XmlElement(required=true)
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
嘿,你可以显示什么是你的JSON请求? ,如果可能的话,控制台输出它在这些情况下有很多信息 – Vihar 2014-09-21 12:36:26
通常我只会使用@Produces({“application/xml”})来获取xml输出。但是现在我想要获得Json文件。所以我把它改成@Produces({“application/json”})......这会导致错误。 请求应该出来empID,名称和电子邮件。 – user3205874 2014-09-21 14:11:08
尝试添加@Consumes({“application/json”}) – Vihar 2014-09-22 03:58:41