java - Jersey REST 与使用 JSON 相关的问题

标签 java json rest jersey jackson

我发现自己处于一种情况,我需要在服务器上使用 POST 获取一些数据并用它做一些简单的事情。但当我尝试使用 www.hurl.it 网站测试它时,它一直显示 415 Unsupported Media Type。

这是我发送的 json:

{
  "pictures": {
    "picture": [
      {
        "id": "1",
        "name": "10_aut_linen_male_less_student_work_yellow_n_cold.png"
      },
      {
        "id": "2",
        "name": "10_aut_linen_male_less_student_work_yellow_n_mild.png"
      },
      {
        "id": "3",
        "name": "10_aut_linen_male_less_student_work_yellow_n_hot.png"
      }
    ]
  }
}

这是模型类:

package com.models.sm7;


import java.util.ArrayList;
import java.util.List;


public class Sm7Pictures {
private Pictures pictures;
    public Pictures getPictures() {
        return pictures;
    }
    public void setPictures(Pictures pictures) {
        this.pictures = pictures;
    }


public class Pictures {
    private List<Picture> picture = new ArrayList<Picture>();
        public List<Picture> getPicture() {
            return picture;
        }
        public void setPicture(List<Picture> picture) {
            this.picture = picture;
        }

    }



public class Picture {
    private String id;
private String name;
        public String getId() {
            return id;
        }
        public void setId(String id) {
            this.id = id;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }


    }
}

这是我的服务类别:

@Path("sm7Service")
public class Sm7Service {

    Sm7DAO sm7DAO = new Sm7DAO();


    @GET
    @Path("/testSm7")
    @Produces(MediaType.TEXT_PLAIN)
    public String testSm (){

    return "Hello";}
    @POST
    @Path("/checkPictures")
    @Consumes(MediaType.APPLICATION_JSON)
    @Produces(MediaType.TEXT_PLAIN)
    public String getPictures(Sm7Pictures picture){

        System.out.println("pokrenuto");

    return "Hello";}

}

DAO 类是我将完成所有逻辑的地方,但为了测试目的,我只是将文本放在普通的...我真的对此很头疼:S 因为它很简单,但我无法理解它工作。我敢打赌它与模型类有关?请帮忙!

最佳答案

解决了,必须将 {} 放入 @Consumes(MediaType.APPLICATION_JSON) 中,如下所示 @Consumes({MediaType.APPLICATION_JSON}).

关于java - Jersey REST 与使用 JSON 相关的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40876122/

相关文章:

java - 如何正确实现终结器以检测 Java 中的资源泄漏

java - 如何访问线程中 Runnable 对象的字段

java - taglib json 从数组创建对象

javascript - 如何获取 json 对象中的属性值

json - Rally JSON I/O 错误创建测试用例结果

java - 具有可变组数的正则表达式中的表情符号 Unicode

linq - 使用 WCF、LINQ、JSON 时无法序列化 'System.Linq.Enumerable... ' 类型的参数

c# - WCF、Web 服务或 Rest

javascript - 使用 REST Api 和 JS 时的时区问题

python - 创建时向 django-rest-framework ModelViewSet 添加其他字段的最佳方法