我有一个用于创建事件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();
}