Hi Buddhimala,

Could you please elaborate your use case where you want to implement
caching? Since you have the API with CRUD operations, IMO it is not
meaningful to cache the responses for PUT and POST.
So if you want to cache 200 OK response of GET, you can implement it
through a custom sequence using cache mediator in APIM.
Please refer [1] for more information.

[1]
https://stackoverflow.com/questions/626057/is-it-possible-to-cache-post-methods-in-http

Thanks,
Piriya

On Fri, Nov 24, 2017 at 4:58 PM, Thivya Mahenthirarasa <thi...@wso2.com>
wrote:

> Hi all,
>
> Does the caching is needed for the Creation scenarios too?. Is it a good
> practice to have to cache for 200 ok responses?
>
>
> Thanks,
> Thivya
>
>
> On Fri, Nov 24, 2017 at 4:23 PM, Krishan Wijesena <krish...@wso2.com>
> wrote:
>
>> Hi buddhimala,
>>
>> Can you check your payload of put method again, refer [1]
>>
>> [1] https://docs.wso2.com/display/AM210/Configuring+Caching#
>> ConfiguringCaching-Responsecache
>>
>> Thanks,
>> krishan.
>>
>> On Fri, Nov 24, 2017 at 2:18 PM, Buddhimala Ranasinghe <
>> buddhim...@wso2.com> wrote:
>>
>>> Hi All,
>>>
>>> I'm trying a scenario where I need to have caching enabled to improve
>>> perfomance at API level.So I enabled response caching from my API. The API
>>> contains resources to perform CRUD operations.
>>>
>>> My problem is, when I try to invoke PUT method in my API after enabling
>>> response caching, it gives me the following error.
>>>
>>> [2017-11-24 14:16:39,969] ERROR - JsonUtil #writeAsJson. Payload could
>>> not be written as JSON. MessageID: urn:uuid:ccc5fb5c-ec7b-4e51-87
>>> 9f-345cd8a54804
>>> [2017-11-24 14:16:39,972] ERROR - PassThroughHttpSSLSender Failed to
>>> submit the response
>>> org.apache.axis2.AxisFault: Payload could not be written as JSON.
>>>     at org.apache.synapse.commons.json.JsonUtil.writeAsJson(JsonUti
>>> l.java:276)
>>>     at org.apache.synapse.commons.json.JsonFormatter.writeTo(JsonFo
>>> rmatter.java:62)
>>>     at org.apache.synapse.transport.passthru.PassThroughHttpSender.
>>> submitResponse(PassThroughHttpSender.java:573)
>>>     at org.apache.synapse.transport.passthru.PassThroughHttpSender.
>>> invoke(PassThroughHttpSender.java:264)
>>>     at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:442)
>>>     at org.apache.synapse.core.axis2.Axis2Sender.sendBack(Axis2Send
>>> er.java:230)
>>>     at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.send(A
>>> xis2SynapseEnvironment.java:531)
>>>     at org.apache.synapse.mediators.builtin.SendMediator.mediate(Se
>>> ndMediator.java:118)
>>>     at org.apache.synapse.mediators.AbstractListMediator.mediate(Ab
>>> stractListMediator.java:97)
>>>     at org.apache.synapse.mediators.AbstractListMediator.mediate(Ab
>>> stractListMediator.java:59)
>>>     at org.apache.synapse.mediators.base.SequenceMediator.mediate(S
>>> equenceMediator.java:158)
>>>     at org.apache.synapse.rest.Resource.process(Resource.java:343)
>>>     at org.apache.synapse.rest.API.process(API.java:338)
>>>     at org.apache.synapse.rest.RESTRequestHandler.dispatchToAPI(RES
>>> TRequestHandler.java:90)
>>>     at org.apache.synapse.rest.RESTRequestHandler.process(RESTReque
>>> stHandler.java:56)
>>>     at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.inject
>>> Message(Axis2SynapseEnvironment.java:304)
>>>     at org.apache.synapse.core.axis2.SynapseCallbackReceiver.handle
>>> Message(SynapseCallbackReceiver.java:554)
>>>     at org.apache.synapse.core.axis2.SynapseCallbackReceiver.receiv
>>> e(SynapseCallbackReceiver.java:188)
>>>     at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
>>>     at org.apache.synapse.transport.passthru.ClientWorker.run(Clien
>>> tWorker.java:262)
>>>     at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.r
>>> un(NativeWorkerPool.java:172)
>>>     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPool
>>> Executor.java:1142)
>>>     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoo
>>> lExecutor.java:617)
>>>     at java.lang.Thread.run(Thread.java:748)
>>> [2017-11-24 14:16:39,972] ERROR - Axis2Sender
>>> Access-Control-Allow-Headers:authorization,Access-Control-Al
>>> low-Origin,Content-Type,SOAPAction,Access-Control-Allow-Meth
>>> ods:PUT,Access-Control-Allow-Origin:*,Content-Type:application/json;
>>> charset=UTF-8,<?xml version='1.0' encoding='utf-8'?><soapenv:Envelope
>>> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";><s
>>> oapenv:Body/></soapenv:Envelope> Unexpected error sending message back
>>> org.apache.axis2.AxisFault: Failed to submit the response
>>>     at org.apache.synapse.transport.passthru.PassThroughHttpSender.
>>> handleException(PassThroughHttpSender.java:632)
>>>     at org.apache.synapse.transport.passthru.PassThroughHttpSender.
>>> invoke(PassThroughHttpSender.java:266)
>>>     at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:442)
>>>     at org.apache.synapse.core.axis2.Axis2Sender.sendBack(Axis2Send
>>> er.java:230)
>>>     at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.send(A
>>> xis2SynapseEnvironment.java:531)
>>>     at org.apache.synapse.mediators.builtin.SendMediator.mediate(Se
>>> ndMediator.java:118)
>>>     at org.apache.synapse.mediators.AbstractListMediator.mediate(Ab
>>> stractListMediator.java:97)
>>>     at org.apache.synapse.mediators.AbstractListMediator.mediate(Ab
>>> stractListMediator.java:59)
>>>     at org.apache.synapse.mediators.base.SequenceMediator.mediate(S
>>> equenceMediator.java:158)
>>>     at org.apache.synapse.rest.Resource.process(Resource.java:343)
>>>     at org.apache.synapse.rest.API.process(API.java:338)
>>>     at org.apache.synapse.rest.RESTRequestHandler.dispatchToAPI(RES
>>> TRequestHandler.java:90)
>>>     at org.apache.synapse.rest.RESTRequestHandler.process(RESTReque
>>> stHandler.java:56)
>>>     at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.inject
>>> Message(Axis2SynapseEnvironment.java:304)
>>>     at org.apache.synapse.core.axis2.SynapseCallbackReceiver.handle
>>> Message(SynapseCallbackReceiver.java:554)
>>>     at org.apache.synapse.core.axis2.SynapseCallbackReceiver.receiv
>>> e(SynapseCallbackReceiver.java:188)
>>>     at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
>>>     at org.apache.synapse.transport.passthru.ClientWorker.run(Clien
>>> tWorker.java:262)
>>>     at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.r
>>> un(NativeWorkerPool.java:172)
>>>     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPool
>>> Executor.java:1142)
>>>     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoo
>>> lExecutor.java:617)
>>>     at java.lang.Thread.run(Thread.java:748)
>>> Caused by: org.apache.axis2.AxisFault: Payload could not be written as
>>> JSON.
>>>     at org.apache.synapse.commons.json.JsonUtil.writeAsJson(JsonUti
>>> l.java:276)
>>>     at org.apache.synapse.commons.json.JsonFormatter.writeTo(JsonFo
>>> rmatter.java:62)
>>>     at org.apache.synapse.transport.passthru.PassThroughHttpSender.
>>> submitResponse(PassThroughHttpSender.java:573)
>>>     at org.apache.synapse.transport.passthru.PassThroughHttpSender.
>>> invoke(PassThroughHttpSender.java:264)
>>>
>>> Can you please help me to solve this problem?
>>>
>>> Thanks
>>>
>>> --
>>>
>>>
>>> *Buddhimala Ranasinghe*
>>> Software Engineer-Support Team | WSO2
>>> Emil: buddhim...@wso2.com
>>> Mobile:+94771563138 <+94%2077%20156%203138>
>>> Web:http://wso2.com
>>> [image: https://wso2.com/signature] <https://wso2.com/signature>
>>>
>>> _______________________________________________
>>> Dev mailing list
>>> Dev@wso2.org
>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>
>>>
>>
>>
>> --
>>
>> *Krishan Wijesena*
>> Software Engineer | WSO2
>>
>> Email : krish...@wso2.com
>> Mobile : +94776219923 <+94%2077%20621%209923>
>> WSO2 Inc : http://wso2.com
>> [image: http://wso2.com/signature] <http://wso2.com/signature>
>>
>> _______________________________________________
>> Dev mailing list
>> Dev@wso2.org
>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>
>>
>
>
> --
>
> *Thivya Mahenthirarasa*
>
> *Software Engineer -Support Team | WSO2*
>
>
> *Email: thi...@wso2.com <thi...@wso2.com>*
>
> *Mobile: +94766461966 <+94%2076%20646%201966> <http://wso2.com/signature>*
> *Web: http://wso2.com <http://wso2.com>*
>
> _______________________________________________
> Dev mailing list
> Dev@wso2.org
> http://wso2.org/cgi-bin/mailman/listinfo/dev
>
>


-- 
Regards,

*Piriya Sivalingam*

*Software Engineer - Support Team*

*WSO2*
*Mobile : +94 77 8462039*

[image: http://wso2.com/signature] <http://wso2.com/signature>
_______________________________________________
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to