Я получаю следующую ошибку, и ни одно из найденных мной решений не помогло мне:
Нераспознанное поле "GaugeDeviceId" (класс GaugeDevice), не помеченное как игнорируемое
Кажется, проблема в том, что служба возвращает имена свойств с первой заглавной буквы, а свойства класса начинаются со строчной буквы.
Я старался:
- изменение propertyNames на первую заглавную букву - та же ошибка
- добавление
@JsonProperty("SerialNo")
к экземпляру свойства - та же ошибка - добавление
@JsonProperty("SerialNo")
к соответствующим геттерам - та же ошибка - добавление
@JsonProperty("SerialNo")
к соответствующим установщикам - та же ошибка - добавление
@JsonProperty("SerialNo")
ко всем из них (просто для удовольствия) - та же ошибка
(примечание: @JsonProperty("SerialNo")
является лишь примером)
Странно то, что аннотация: @JsonIgnoreProperties(ignoreUnknown = true)
должна подавлять именно эту ошибку, но она все еще срабатывает...
здесь класс: (примечание: не завершено)
@JsonIgnoreProperties(ignoreUnknown = true)
public class GaugeDevice
{
private int gaugeDeviceId;
private Date utcInstallation;
private String manufacturer;
private float valueOffset;
private String serialNo;
private String comment;
private int digitCount;
private int decimalPlaces;
@JsonProperty("SerialNo")
public String getSerialNo() {
return serialNo;
}
public void setSerialNo(String serialNo) {
this.serialNo = serialNo;
}
@JsonProperty("Comment")
public String getComment() {
return comment;
}
public void setComment(String comment) {
this.comment = comment;
}
Где здесь выход? Пожалуйста помоги.
редактировать:
Вот класс клиента: (просто простой тестовый клиент)
import ccc.android.meterdata.*;
import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.Invocation;
import org.glassfish.jersey.jackson.JacksonFeature;
public class RestClient
{
private String connectionUrl;
private javax.ws.rs.client.Client client;
public RestClient(String baseUrl) {
client = ClientBuilder.newClient();;
connectionUrl = baseUrl;
client.register(JacksonFeature.class);
}
public GaugeDevice GetGaugeDevice(int id){
String uri = connectionUrl + "/GetGaugeDevice/" + id;
Invocation.Builder bldr = client.target(uri).request("application/json");
return bldr.get(GaugeDevice.class);
}
}
Я надеюсь, что ошибка имеет корень здесь?