2013-05-24 2 views
1

Мы пытаемся использовать wso2 api manager для доступа к некоторым нашим сервисам RESTful. Остальные службы ожидают полезную нагрузку json. Когда json-запрос отправляется менеджеру api, он преобразует json-запрос в xml и снова при пересылке в фактическую конечную точку, которую он преобразует в json назад. В результате json не соответствует точно первоначальному запросу в одном из наших случаев. Например, если rquest содержит массив элементов, и если в массиве передан только один элемент, тогда, когда менеджер api перенаправляет запрос в конечную точку, символы массива ([,]) удаляются. например. наш первоначальный запрос былjson conversion issue in wso2 API Manager

{ 
    "entities": [ 
    { 
     "name":"KK71CP20000523A1", 
     "descr":"VaS", 
     "mnf":"BCT", 
     "mdlyr":"2012" 
    } 
    ] 
} 

отправлен запрос менеджером апи был

{ 
    "entities": 
    { 
     "name":"KK71CP20000523A1", 
     "descr":"VaS", 
     "mnf":"BCT", 
     "mdlyr":"2012" 
    } 

} 

Оберточная массив удаляют при сущностей элемента. Когда число элементов больше одного, символы массива сохраняются.

Мы столкнулись с той же проблемой в ESB, что и ранее. Но мы работали над проблемой, расширив стандарт JSONMessageFormatter и используя метод seriliazeAsArray, доступный в библиотеке сбрасывания. Но мы не хотим выполнять эту настройку в диспетчере API. Есть ли лучший способ решить эту проблему? Любой патч, доступный от wso2, чтобы исправить это?

ответ

0

Все углеродные продукты поставляются с одинаковыми сборщиками сообщений и форматировщиками, для вашего случая вы можете проверить с помощью JSONStreambuilder и форматирования. Посмотрите на это reference,

+0

Я пробовал JSONStreamBuilder и JSONStreamFormatter. Но все же это работает так же. – bhaskar