I 'Ve построил веб-сервис REST в JAVA с использованием трикотажа. Все работало нормально, пока я не переключил MediaType из application_xml в application_json.Джерси и JSON
Если я использую XML, то все работает как надо:
клиентской:
public static CoResponse rO = new CoResponse();
rO = service.path("check-in").accept(MediaType.APPLICATION_XML).put(CoResponse.class, rO);
стороне сервера:
@PUT
@Consumes(MediaType.APPLICATION_XML)
public CoResponse newCheckin(JAXBElement<CoResponse> obj){
CoResponse newObj = obj.getValue();
//DO SOMETHING....
return newObj
}
Когда я изменить MEDIATYPE к Application_JSON я «Я получаю ошибку неподдерживаемого типа 415:
клиентской:
public static CoResponse rO = new CoResponse();
rO = service.path("check-in").accept(MediaType.APPLICATION_JSON).put(CoResponse.class, rO);
стороне сервера:
@PUT
@Consumes(MediaType.APPLICATION_JSON)
public CoResponse newCheckin(JAXBElement<CoResponse> obj){
CoResponse newObj = obj.getValue();
//DO SOMETHING....
return newObj
}
Есть ли еще что-то делать, когда с помощью JSON? спасибо.
Классы я использовал следующие:
CoResponse объекта:
@XmlRootElement
public class CoResponse {
private int code;
private String errorMessage;
//Datastore
public CoDataList<CoDataMap<String, String>> data = new CoDataList<CoDataMap<String, String>>();
}
CoDataList объекта:
public class CoDataList <V> implements Map<Integer, V>{
int nextIndex;
public Map<Integer, V> data = new HashMap<Integer,V>();
}
CoDataMap Объект:
public class CoDataMap <K, V> implements Map<K, V>{
public Map<K, V> data = new HashMap<K,V>();
}
ошибки в журналах сервера приложений? – jayraynet
нет, нет журналов сервера. Ошибка появляется на стороне клиента, и сервер даже не входит в метод post. Мне не нужен Jaxb, я также могу использовать CoResponse напрямую. Но это ничего не меняет.Ошибка все еще появляется – Chris
Я предполагаю, что для «Карты» в CoDataMap и CoDataList реализованы некоторые дополнительные методы, чтобы полностью реализовать интерфейс, правильно? – jayraynet