尝试使用球衣客户端将POJO发布到外部API时出错

时间:2018-11-07 04:13:06

标签: java json jersey-2.0 pojo jersey-client

我有一个用于创建事件POJO的类,并使用setObjectId链调用为POJO设置值。

问题是当我尝试使用jersey客户端将POJO发布到外部API时,出现错误“找不到针对媒体类型= application / json的Messagebodywriter”。我知道也许我需要使用Jackson或Gson之类的库将其转换为JSON。但是我仍然尝试不使用这些库来实现此功能。 Jersey是否可以将POJO自动转换为JSON?

我还发现,当我只是放置一个空的构造函数并设置m_timeStamp和m_objectName时,使用与用于设置值的setObjectId相同的方法。然后,我将此POJO使用Jersey客户端发布,并且可以正常工作。无需进行任何转换操作。有人可以帮我解决这个问题吗?

  public class Event {

    private final String m_timeStamp;
    private final String m_objectName;

    public Event(String objectName) {

    if (StringUtils.nullOrEmpty(objectName)) {
     throw new IllegalArgumentException("The objectName field is not supplied");
    }

       m_timeStamp = RecDateUtils.utcDateToString(new Date());
       m_objectName = objectName;
 }

    @XmlElement(name = "timeStamp")
     public String getTimeStamp() {
       return m_timeStamp;
 }

    @XmlElement(name = "objectName")
    public String getObjectName() {
       return m_objectName;
 }

    @XmlElement(name = "objectId")
      public Integer getObjectId() {
        return m_objectId;
 }

   public Event setObjectId(Integer objectId) {
  m_objectId = objectId;
  return this;
 }

  @Override
   public String toString() {

    StringBuilder sb = new StringBuilder();
     sb.append("Event");
     sb.append("<timeStamp=").append(m_timeStamp);
     sb.append(", userName=").append(m_userName);;
     if (null != m_objectId)
     sb.append(", objectId=").append(m_objectId);

     return sb.append(">").toString();
 }

0 个答案:

没有答案