On Sat, Mar 5, 2016 at 3:19 PM, Malintha Amarasinghe <[email protected]> wrote:
> 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? > +1. We may able to extend from existing formatter. > > 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 > -- *Isuru Udana* Associate Technical Lead WSO2 Inc.; http://wso2.com email: [email protected] cell: +94 77 3791887 blog: http://mytecheye.blogspot.com/
_______________________________________________ Dev mailing list [email protected] http://wso2.org/cgi-bin/mailman/listinfo/dev
