Я написал клиент java REST, используя Jersey 2.17. Код выглядит так:
public <T> T query(Class<T> responseType, Result previous) {
...
for(Map.Entry<String, String> entry : map.entrySet())
webTarget = webTarget.queryParam(entry.getKey(), entry.getValue());
return webTarget.request(MediaType.APPLICATION_JSON).get(responseType);
}
Код работает, как и ожидалось, за исключением одного. Объект JSON, возвращаемый сервисом, содержит список объектов с такими полями:
...
"_type": "Package"
"resourceId": "nimbusnodeweb-0.0.1_20141028083104790",
"_oid": "544f5468e4b0b148bedbcfed",
...
Когда я возвращаю свой объект из метода запроса, для этих свойств _type и _oid устанавливается значение null. Проблема в том, что они являются идентификаторами объектов. Я не могу понять, как настроить этот объект WebTarget, чтобы он понимал ключи, начинающиеся с подчеркивания. Мой целевой объект Java выглядит так:
public class PackageInfo {
private String _type; // = "Package"
private String resourceId;
private String _oid;
...
Я даже поставил два сеттера для этих полей
/**
* @param _oid the _oid to set
*/
public void setOid(String _oid) {
this._oid = _oid;
}
/**
* @param _oid the _oid to set
*/
public void set_oid(String _oid) {
this._oid = _oid;
}
Ничего не работает. Любые подсказки будут высоко оценены.