WSo2 ESB 4.0.3 и JSON в REST-сервисе - PullRequest
0 голосов
/ 07 марта 2012

Я пытаюсь использовать службу REST, выкладывающую вывод JSON в WSB403, и я потерпел неудачу.Я выполнил действия, описанные в приведенной ниже ссылке.

ESB и JSON

Я добавил DynamicResponseModule и назначил его глобально.

Когда я нормально запускаю службу REST, я получаю вывод в формате XML, как и ожидалось, но когда я пытаюсь добавить «response=json», моя служба истекает, и я получаю следующую трассировку стека.

Внутренне DynamicResponseModule должен отобразить это responseType на application/JSON/Badgerfish, и когда это произойдет, я получу следующую трассировку стека.

java.lang.RuntimeException:Пространство имен элемента из источника данных http://ws.apache.org/axis2, не ожидаемое в org.apache.axiom.om.impl.llom.OMSourcedElementImpl.forceExpand (OMSourcedElementImpl.java:287) в org.apache.axiom.om.impl.llom.OMSourcedElementImpl.getFirstOMChild (OMSourcedElementImpl.java:867) при org.apache.axiom.om.impl.OMNavigator._getFirstChild (OMNavigator.java:196) в org.apache.axiom.om.impl.OMNavigator.updateNextNode (OMNavigator.java: 140) в org.apache.axiom.om.impl.OMNavigator.getNext (OMNavigator.java:112) в org.apache.axiom.om.impl.SwitchingWrapper.updateNextNode (SwitchingWrapper.java:1113) в org.apache.axiom.om.impl.SwitchingWrapper. (SwitchingWrapper.java:235) в org.apache.axiom.om.impl.OMStAXWrapper. (OMStAXWrapper.java:74) в org.apache.axiom.om.impl.llom.OMStAXWrapper.(OMStAXWrapper.java:52) в org.apache.axiom.om.impl.llom.OMContainerHelper.getXMLStreamReader (OMContainerHelper.java:51) по адресу org.apache.axiom.om.impl.llom.OMElementImpl.getXMLStreamReader (OMElementImpl.java:736) по адресу org.apache.axiom.om.impl.mplement.llle.ll (OMElementImpl.java:1038) в org.apache.synapse.util.MessageHelper.cloneSOAPEnvelope (MessageHelper.java:256) в org.apache.synapse.core.axis2.SOAPUtils.convertSOAP11toSOAP12 (SOAPUtils.java.95).synapse.core.(AxisEngine.java:181) в org.apache.synapse.transport.nhttp.ClientWorker.run (ClientWorker.java:275) в org.apache.axis2.transport.base.threads.NativeWorkerPool $ 1.run (NativeWorkerPool.No)173) в java.util.concurrent.ThreadPoolExecutor $ Worker.runTask (ThreadPoolExecutor.java:886) в java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:908) at java.lang.Thread.run (Thread.java:662). Это средства форматирования и построения сообщений, которые я добавил в axis2.xml class = "org.apache.axis2.json.JSONOMBuilder"/> class = "org.apache.axis2.json.JSONBadgerfishOMBuilder" />
class = "org.apache.axis2.json.JSONOMBuilder" />
class = "org.apache.axis2.json.JSONBadgerfishMessageFormatter"/>
class =" org.apache.axis2.json.JSONMessageFormatter "/>

Есть идеи, чего мне здесь не хватает?

Спасибо

Нарси

1 Ответ

1 голос
/ 09 марта 2012

Вы можете вдохновить от образца [1]. (Обратите внимание, что если вы хотите переключиться с json на soap11, вам нужно установить формат конечной точки на soap11.)

Используйте конструктор сообщений json и формуляр в axis2.xml для правильного типа контента (например, application / json)

[1] http://wso2.org/project/esb/java/4.0.3/docs/samples/advanced_mediation_samples.html#Sample440

...