2014-02-12 5 views
0

Я стараюсь использовать рестайл на верблюде. запрос должен быть 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 не знает, как преобразовать его в объект. любая помощь будет действительно оценена!

Спасибо,

ответ

0

Использование JSON.parse() и тип содержимого должны быть установлены в приложении/JSON

+0

Спасибо за ваш ответ! когда я передаю данные как: {"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», отсутствует массив строк: –