【问题标题】:Data format to test Spring Rest Services测试 Spring Rest Services 的数据格式
【发布时间】:2014-11-25 14:57:23
【问题描述】:

我正在测试 spring rest 服务,特别是 POST 方法。
这是我的控制器的代码sn-p:

@RequestMapping(value = "/testrequest", method = RequestMethod.POST, headers = "Accept=application/json")
    public @ResponseBody String createEmployee(@RequestBody Employee e){
        String value = "id " + e.getId() + "firstName " + e.getFirstName() + "lastname " + e.getLastName();
        System.out.println(value);
        return value;
    }


员工等级:

public class Employee {

    private int id;
    private String firstName;
    private String lastName;

    public Employee(int id,String firstName,String lastName){
        this.id = id;
        this.firstName = firstName;
        this.lastName = lastName;
    }

    public Employee() {
        // TODO Auto-generated constructor stub
    }

    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getFirstName() {
        return firstName;
    }
    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }
    public String getLastName() {
        return lastName;
    }
    public void setLastName(String lastName) {
        this.lastName = lastName;
    }
}

我也在 pom.xml 中包含了 jackson 库的依赖项
pom.xml

        <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-mapper-asl</artifactId>
            <version>1.9.13</version>
        </dependency>

我正在使用 Firefox 海报插件测试服务。

当我提交请求时,我收到状态:415 不支持的媒体类型。
这是我收到的错误消息: 服务器拒绝此请求,因为请求实体的格式不受所请求方法的请求资源支持。

请指出我做错了什么?

【问题讨论】:

    标签: java json spring rest maven


    【解决方案1】:

    尝试关注

    导入 javax.ws.rs.core.MediaType;

    @RequestMapping(value = "/testrequest", method = RequestMethod.POST,consumes = MediaType.APPLICATION_JSON,produces = MediaType.APPLICATION_JSON){

    }

    注意:确保您的实现正常运行。我还没有测试过“jackson-mapper-asl”。您可以为实现包含以下依赖项并对其进行测试。

           <dependency>
                <groupId>org.jboss.resteasy</groupId>
                <artifactId>resteasy-jackson-provider</artifactId>
                <version>3.0.2.Final</version>
            </dependency>
    

    【讨论】:

    • 我正在尝试将 json 转换为 Java 对象,不确定它在 resteasy 中是如何工作的,但在春天 @RequestBody 会小心的。
    【解决方案2】:

    试试

    @RequestMapping(value = "/testrequest", method = RequestMethod.POST, consumes = "application/json")
    

    编辑

    也许尝试添加:

        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>2.4.3</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.4.3</version>
        </dependency>
    

    到你的pom

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-24
      • 2023-03-25
      • 1970-01-01
      • 1970-01-01
      • 2017-04-27
      • 1970-01-01
      • 2017-04-23
      • 1970-01-01
      相关资源
      最近更新 更多