POST实体,其字节数组属性为JSON

时间:2018-03-08 10:53:18

标签: jersey-2.0

我是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

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

1 个答案:

答案 0 :(得分:0)

好吧,我希望比愚蠢更累...但是作为 "引起:java.lang.NoClassDefFoundError:javax / mail / internet / MimeMultipart"建议,通过将javax.mail添加到依赖项中,所有问题都解决了......