Я стараюсь использовать рестайл на верблюде. запрос должен быть JSON. но не как преобразовать JSON в java-объект. вот примеры кода:camel restlet Json integration issue
запрос клиента:
$.ajax({
url: '${pageContext.request.contextPath}/rs/search?restletMethod=POST',
type: "POST",
data: $('#searchRequest').serializeArray(),
contentType: "application/json;charset=utf-8",
dataType: "html",
success: function (result)
{
$("#result #queryId").text(result);
},
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert(thrownError.Message);
}
});
RouterBuilder:
from("restlet:/search?restletMethod=POST").unmarshal("gson")
.to("bean:restletHandler");
camelcontext.xml
<bean id="gson" class="org.apache.camel.component.gson.GsonDataFormat">
<property name="unmarshalType" value="domain.SearchRequest"/>
</bean>
Я продолжал получать следующие исключения:
с om.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Ожидаемое BEGIN_OBJECT но STRING в строке 1 колонки 1
Тело в обмен является тип org.restlet.engine.io.UnclosableInputStream выглядит следующим образом:
пол = женский & _sex = & на пол = мужской & _sex = на & _sex = на & _race = на & гонки = черный & _race = на & гонки = индийский & _race = на & _race = на & _race = от & пола = & лекарства = 2345 & _medication = на & _medication = на & _medication = на & _medication = на & _medication = на & _diagnosis = от & диагностики = 410,90 & _diagnosis = на & _diagnosis = на & _diagnosis = на & _diagnosis = на & описание = запрос описание sdfdsfQuery RequestcloseID Дата создания владельца счета статуса полная дата
поток в теле не выглядят как Json, так gson не знает, как преобразовать его в объект. любая помощь будет действительно оценена!
Спасибо,
Спасибо за ваш ответ! когда я передаю данные как: {"demographics.sex": ["female", "male", "unknown"], "demographics.race": "indian", "medications.includeCodes": ["2345", " 4567 "]," medications.excludeCodes ":" 4567 "," diagn.includeCodes ": [" 250.00 "," 410.90 "," 401.9 "]," description ":" cxzcxzc "," gender ":" "} объект, созданный после «gson», отсутствует массив строк: –