有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java使用javaeeapi使用POST API调用

我正在尝试使用用Entity.json包装的普通旧Java对象进行POST调用。我正在使用以下依赖项:

<dependency>
  <groupId>javax</groupId>
  <artifactId>javaee-api</artifactId>
  <version>7.0</version>
  <scope>provided</scope>
</dependency>

以下是我的帖子功能:

public String testPostCall(TestParams params) {
        return target.request(MediaType.APPLICATION_JSON)
                     .accept(MediaType.APPLICATION_JSON)
                     .post(Entity.json(params), String.class);
    }

我认为问题出在{}。我得到的错误是:

javax.ws.rs.ProcessingException: No message body writer has been found for class TestParams

下面是我的TestParams类的样子:

import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement
public class TestParams {

    private String message;

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }
}

是否缺少将POJO类TestParams转换为JSON的依赖项?还是我使用了错误的注释?我想使用一个API,它主要服务于POST调用。任何帮助都将不胜感激


共 (1) 个答案

  1. # 1 楼答案

    我想出了如何将POJO从this link转换成JSON,然后使用以下代码:

    public String testPostCall(TestParams params) {
            try {
                return target.request(MediaType.APPLICATION_JSON)
                        .accept(MediaType.APPLICATION_JSON)
                        .post(Entity.json(mapper.writeValueAsString(params)), String.class);
            } catch (IOException e) {
                e.printStackTrace();
            }
            return null;
        }