2012-03-07 3 views
0

Я пытаюсь использовать службу REST, выталкивая выход JSON в WSB403, и я был очень неудачным. Я выполнил шаги, описанные в приведенной ниже ссылке.WSo2 ESB 4.0.3 и JSON в службе REST

ESB and 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) в орг .apache.axiom.om.impl.OMNavigator.updateNextNode (OMNavigator.java:140) at 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) в орг .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.llom.OMElementImpl.cloneomelement (OMElementImpl.java:1038) по адресу org. apache.synapse.util.MessageHelper.cloneSOAPEnvelope (MessageHelper.java:256) на org.apache.synapse.core.axis2.SOAPUtils.convertSOAP11toSOAP12 (SOAPUtils.java:95) на org.apache.synapse.core. axis2.SynapseCallbackReceiver.handleMessage (SynapseCallbackReceiver.java:323) на org.apache.synapse.core.axis2.SynapseCallbackReceiver.receive (SynapseCallbackReceiver.java:160) на org.apache.axis2.engine.AxisEngine.receive (AxisEngine .java: 181) at org.apache.synapse.transport.nhttp.ClientWorker.run (ClientWorker.java:275) at org.apache.axis2.transport.base.threads.NativeWorkerPool $ 1.run (NativeWorkerPool.java : 173) по адресу java.util.c oncurrent.ThreadPoolExecutor $ Worker.runTask (ThreadPoolExecutor.java:886) на java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:908) на java.lang.Thread.run (Thread.java:662) Это сообщение форматировщиков и строителей, которые я добавил в axis2.xml class = "org.apache.axis2.json.JSONOMBuilder" /> class = "org.apache.axis2.json.JSONBadgerfishOMBuilder" />
класс = "org.apache.axis2.json.JSONOMBuilder "/>
класс =" org.apache.axis2.json.JSONBadgerfishMessageFormatter "/>
класс =" org.apache.axis2.json.JSONMessageFormatter "/>

Любая идея, что я здесь отсутствует?

Благодаря

Narsi

ответ

1

вы можете внушать из образца [1]. (Пожалуйста, обратите внимание, что если вы хотите, чтобы перейти от JSon т o soap11, тогда вы должны установить формат конечной точки для soap11.)

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

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

Смежные вопросы