Я следовал документации WSO2 о том, как проверять запросы json.Я реализовал, как это объяснено, и когда я пробую его, используя неправильное тело json, приложение вылетает со следующей ошибкой вместо выполнения моего кода фабрики полезной нагрузки.что мне не хватает?
ОШИБКА:
ERROR - StkPushAPI Error creating a new schema objects for schemas : [Value {name ='null', keyValue ='conf:schema/processCheckoutSchema.json'}]
org.xml.sax.SAXParseException: Content is not allowed in prolog.
at org.apache.xerces.jaxp.validation.Util.toSAXParseException(Unknown Source)
at org.apache.xerces.jaxp.validation.Util.toSAXException(Unknown Source)
at org.apache.xerces.jaxp.validation.XMLSchemaFactory.newSchema(Unknown Source)
at org.apache.synapse.mediators.builtin.ValidateMediator.mediate(ValidateMediator.java:428)
at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:108)
at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:70)
at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:158)
at org.apache.synapse.rest.Resource.process(Resource.java:351)
at org.apache.synapse.rest.API.process(API.java:399)
at org.apache.synapse.rest.RESTRequestHandler.apiProcess(RESTRequestHandler.java:135)
at org.apache.synapse.rest.RESTRequestHandler.dispatchToAPI(RESTRequestHandler.java:113)
at org.apache.synapse.rest.RESTRequestHandler.process(RESTRequestHandler.java:71)
at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:303)
at org.apache.synapse.core.axis2.SynapseMessageReceiver.receive(SynapseMessageReceiver.java:92)
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
at org.apache.synapse.transport.passthru.ServerWorker.processNonEntityEnclosingRESTHandler(ServerWorker.java:337)
at org.apache.synapse.transport.passthru.ServerWorker.processEntityEnclosingRequest(ServerWorker.java:383)
at org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:151)
at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
вот мой конфиг:
> <validate cache-schema="true">
> <schema key="conf:schema/processCheckoutSchema.json"/>
> <resource key="conf:schema/processCheckoutSchema.json" location="default_location"/>
> <on-fail>
> <payloadFactory description="failureResponse" media-type="json">
> <format>{"message":"JSON validation failed"}</format>
> <args/>
> </payloadFactory>
> <respond description="failureResponse"/>
> </on-fail>
> </validate>