У меня есть класс для создания события POJO и использования цепного вызова setObjectId для установки значения в POJO.
Проблема в том, что когда я пытаюсь использовать клиент jersey для отправки POJO во внешний API, у меня появляется ошибка "Messagebodywriter not found for media type = application / json". Я знаю, может быть, мне нужно использовать некоторые библиотеки, такие как Джексон или Gson, чтобы преобразовать его в JSON. Но я все еще стараюсь не использовать эти библиотеки для реализации этой функции. Возможно ли, чтобы Джерси автоматически конвертировал POJO в JSON?
И я также обнаружил, что когда я просто помещаю пустой конструктор и задаю m_timeStamp, а m_objectName используют тот же метод, что и setObjectId, используемый для установки значений. Затем я публикую этот POJO-клиент на Джерси, и он работает. Нет необходимости делать какие-либо операции преобразования. Может ли кто-нибудь помочь мне понять это?
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();
}