【问题标题】:POST entity with a byte array attribute as JSON具有字节数组属性的 POST 实体作为 JSON
【发布时间】:2018-03-08 10:53:17
【问题描述】:

我是 REST 新手,必须创建一个 POST 来接收一个实体,该实体具有一个字节数组内的嵌套对象。 这是我的帖子:

@POST
@Path("/post-entity")
@Consumes({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
public Response processEventcallback(ProcessEvent processEvent) {

    System.out.println(entity.toString());
    return null;
}

我这样称呼 POST:

    Client client = ClientBuilder.newClient();
    Entity entity = new Entity ();
    entity .setId("645");
    entity .setKey("cqp");
    entity .setVersion("1.0");

    Message msg= new Message();
    msg.setContent(Base64.getEncoder().encode("post test".getBytes()));
    msg.setId("carl");
    entity.setMsg(msg);

    WebTarget target = client.target("http://localhost:8080/myRest/webapi/");

    Response response = target.path("send" ).request()
            .post(Entity.entity(entity, MediaType.APPLICATION_JSON));

当我在帖子中使用 xml 作为媒体类型时,一切正常,问题是当我使用(之前代码中的 json)时,我得到:

javax.ws.rs.ProcessingException: javax/mail/internet/MimeMultipart
...
...
Caused by: java.lang.NoClassDefFoundError: javax/mail/internet/MimeMultipart

如果我删除消息中的字节数组,它就可以正常工作

【问题讨论】:

    标签: jersey-2.0


    【解决方案1】:

    好吧,我希望比愚蠢更累...但是作为 “Caused by: java.lang.NoClassDefFoundError: javax/mail/internet/MimeMultipart”建议,通过将 javax.mail 添加到依赖项中,一切都解决了......

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多