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

测试SpringREST服务的数据格式

仲孙焱
2023-03-14

我正在测试SpringREST服务,特别是POST方法
以下是我的控制器的代码片段:

@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>

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

请说明我做错了什么?

共有2个答案

冯星剑
2023-03-14

尝试

@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>

去你的舞会

冯育
2023-03-14

试着跟随

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

@RequestMapping(value=“/testrequest”,method=RequestMethod.POST,consumes=MediaType.APPLICATION\u JSON,products=MediaType.APPLICATION\u JSON){

}

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

       <dependency>
            <groupId>org.jboss.resteasy</groupId>
            <artifactId>resteasy-jackson-provider</artifactId>
            <version>3.0.2.Final</version>
        </dependency>
 类似资料:
  • 问题内容: 我正在学习PHP MYSQL并尝试创建数据库。 我正在关注本教程 http://www.raywenderlich.com/2941/how-to-write-a-simple-phpmysql- web-service-for-an-ios-app 到目前为止,我正在测试服务器是否可以访问MySQL。当我使用以下代码时。 我收到以下错误: 我也许忘记了启用某些功能吗? 它可以解释为什

  • 在我的项目中,我在进行单元测试时遇到了问题。一个问题是,仅仅进行联调就可以更快地编写,并且还可以测试组件是否真正协同工作。单元测试新颖的“算法”之类的似乎要容易得多。单元测试服务类感觉是错误和无用的。 我使用mockito来模拟spring数据存储库(以及DB访问)。问题是,如果我告诉模拟存储库在方法调用getById时返回实体A,它显然会返回实体A,服务也会返回实体A。是的,该服务做了一些额外的

  • 像组件一样,服务通常需要依赖,Angular通过服务类的构造函数注入。由于我们在Angular的引导过程之外初始化这些类,我们必须自己显式注入这些依赖。这是通过使用TestBed配置测试模块传回所需的依赖项(如HTTP模块)来实现的。

  • 我有一个rest服务,实现如下- 我得到了所有的头和响应状态正确,但我没有得到json响应。这里怎么了?

  • 问题内容: 我想测试用Go编写的gRPC服务。我使用的示例是来自grpc-go repo的Hello World服务器示例。 protobuf的定义如下: 主要类型是: 我在寻找示例,但找不到有关如何在Go中实现gRPC服务测试的任何示例。 问题答案: 我认为您正在寻找该软件包,以帮助您避免使用真实端口号启动服务,但仍允许测试流式RPC。 这种方法的好处是,您仍然可以通过网络连接来获得网络行为,但