当前位置: 首页 > 知识库问答 >
问题:

Jersey-Rest API(Json格式)

郭远
2023-03-14

我正在尝试创建一个Jersey应用程序,并希望以Json格式将输出传递给web浏览器。以下是代码。我只能以xml格式传递数据,当我更改为“应用程序/json”格式时,会出现“HTTP状态500-内部服务器错误”。有什么建议吗?谢谢

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("george@gmail.com");
        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;
    }
}

共有2个答案

仉英朗
2023-03-14

你需要把Jersey和Jackson结合起来。请看本教程:

http://examples.javacodegeeks.com/enterprise-java/rest/jersey/json-example-with-jersey-jackson/

井镜
2023-03-14

代码看起来“几乎”很好,对我来说就像预期的那样,但是你的员工应该实现Serializable。我现在看不出还有其他问题,所以我想问题出在其他地方。

你说,自从你从XML更改为JSON以来,它不再工作了。所以我认为,你错过了JSON的依赖项。检查这个...

但事实上,缺少依赖项不应导致500。你添加了一个例外标记(ExceptionMapper)并且你自己扔了500个,这是真的吗?

 类似资料:
  • 问题内容: 如何使用Jersey / JAX-RS框架以XML / JSON文档形式返回a并不是很明显。它已经支持s了,但是当涉及到s时,就没有了。即使将嵌入到包装器类中,XML模式中也没有类型。 关于如何在Jersey中将地图编组为XML / JSON文档的任何实用建议? 问题答案: 我知道它的回复很晚,但是我希望有一天它能对某人有所帮助:)我应用的最简单,最快的修复方法是 输出:{“ 1”:“

  • 我需要根据以下场景格式化restful服务的输出(xml) 我有一个键值对如下的类。 假设我有这样的列表,由rest服务返回: 我想生成如下输出 但目前它提供了以下输出 有人能告诉我如何做到这一点吗?

  • 问题内容: 我正在使用Jersey + Jackson为我的应用程序提供REST JSON服务层。我的问题是默认的日期序列化格式如下所示: 起初我以为这是UNIX时间戳…但是太长了。我的客户端JS库在反序列化此格式时遇到了问题(它支持一堆不同的日期格式,但我认为不支持)。我想更改格式,以便可以由我的库使用(例如ISO)。我该怎么做…我发现了一段代码可能会有所帮助,但是…由于我不控制Jackson序

  • 问题内容: 我正在尝试简单的Jersey + JSON示例,但出现以下错误 我放入以下jar文件以获得适当的结果 为什么会出现此类错误?错误日志在这里: web.xml JsonExample.java 和Json服务 如果我做错了事,请提出建议。 问题答案: 此问题已通过jersey-bundle-1.8.jar修复

  • 问题内容: 我想将JSON-Post中的值解析为Java-Variables。但是它们总是空的! JSON发布: 我尝试将其解析为Java变量: 如果我这样尝试: Tomcat说: Java类int,Java类型int和MIME媒体类型application / json的消息正文阅读器;找不到字符集= UTF-8。 任何帮助都很好,我只是不明白。 问题答案: 您需要创建一个POGO,Jersey

  • 问题内容: Jackson with Jersey是否支持JSON上的多态类? 比方说,例如,我有一个Parent类和一个从其继承的Child类。而且,假设我要使用JSON通过HTTP发送和接收父级和子级。 我考虑过这种实现: 问题:如果我(当然通过JSON)给此函数一个Child对象,它将起作用吗?Child的多余成员字段也将被序列化吗?基本上,我想知道这些框架是否支持多态消费和响应。 顺便说一