Hi Isuru, Thanks a lot for the input. I was able to get it working using a handler that replaces the content-type header with text/plain media type. Now a small problem is the client receives the response with text/plain media type. It seems the current PlainTextFormatter [1] has "text/plain" message format hardcoded in getContentType() method, so I guess we will have to use a custom message formatter in order to change it. WDYT?
Thanks, Malintha [1] https://github.com/wso2/wso2-axis2/blob/master/modules/transport/base/src/main/java/org/apache/axis2/format/PlainTextFormatter.java#L67 On Sat, Mar 5, 2016 at 11:49 AM, Isuru Udana <[email protected]> wrote: > Hi Malintha, > > Builder mediator approach is adding lot of overhead to the configuration > as we have to add it for all the APIs in ESB which handles json. > Handling malformed json is a special case. For this special API which > handles malformed json, let's engage an API handler. At the handler in the > response path we can change the content-type. > > > On Saturday, March 5, 2016, Malintha Amarasinghe <[email protected]> > wrote: > >> Hi Isuru, >> >> Thanks for looking in to this. >> >> 1. We have an API and lets say it points to a backend which sometimes >> give invalid payloads with application/json content type. >> 2. We have added a content aware mediator along the mediation flow. (Ex: >> the API is response caching enabled) >> 3. If the backend gives an invalid payload the cache mediator will fail >> when it tries to build the message. >> >> If we had set the PlainTextBuilder/PlainTextFormatter for application/json >> mediatype in axis2.xml, we can overcome the above issue. But the problem >> is, that applies globally to all the APIs / Services etc in ESB. If we >> could set the PlainTextBuilder/PlainTextFormatter for application/json >> content type only to the API we have the problem with the backend while >> keeping default JsonBuilder/JsonFormatter, it would be a better solution >> IMO as our solution would not affect other APIs/Services. >> >> Thanks, >> Malintha >> >> >> >> >> >> On Sat, Mar 5, 2016 at 10:26 AM, Isuru Udana <[email protected]> wrote: >> >>> Hi Malintha, >>> >>> Can you please explain the use case you are trying to implement using >>> builder mediator. >>> >>> >>> On Saturday, March 5, 2016, Malintha Amarasinghe <[email protected]> >>> wrote: >>> >>>> Hi, >>>> >>>> I was trying a sample for Builder Mediator [1] to override the default >>>> message formatter/builder and use PlainTextBuilder/PlainTextFormatter for >>>> application/json content type. As per the documentation [1] we should be >>>> enable BinaryRealyBuilder/ExpandingMessageFormatter for at least one >>>> content type in axis2.xml. >>>> >>>> 1. I tried enabling a different content-type for >>>> BinaryRealyBuilder/ExpandingMessageFormatter and kept the defaults for >>>> application/json type and then tried to override it using the builder >>>> mediator. But then the Builder mediator does not work as expected and it >>>> uses default JsonBuilder/JsonBuilder to build the message. >>>> >>>> 2. If I enable BinaryRealyBuilder/ExpandingMessageFormatter for >>>> application/json in axis2.xml, Builder mediator works as expected. >>>> >>>> Am I doing anything wrong when I am trying the first option? Or is (2) >>>> the correct behaviour and we should >>>> set BinaryRealyBuilder/ExpandingMessageFormatter for the same content type >>>> we are trying to override? >>>> >>>> Kindly appreciate your help on this. >>>> >>>> Thanks, >>>> Malintha >>>> >>>> [1] https://docs.wso2.com/display/ESB490/Builder+Mediator >>>> >>>> -- >>>> Malintha Amarasinghe >>>> Software Engineer >>>> *WSO2, Inc. - lean | enterprise | middleware* >>>> http://wso2.com/ >>>> >>>> Mobile : +94 712383306 >>>> >>> >>> >>> -- >>> Sent from Mobile >>> >> >> >> >> -- >> Malintha Amarasinghe >> Software Engineer >> *WSO2, Inc. - lean | enterprise | middleware* >> http://wso2.com/ >> >> Mobile : +94 712383306 >> > > > -- > Sent from Mobile > -- Malintha Amarasinghe Software Engineer *WSO2, Inc. - lean | enterprise | middleware* http://wso2.com/ Mobile : +94 712383306
_______________________________________________ Dev mailing list [email protected] http://wso2.org/cgi-bin/mailman/listinfo/dev
