Adding 2 providers (for CustomObject and LIst<CustomObject>) to <jaxrs:providers> Works as expected :))
Thanks a lot for the help! On Fri, Jan 27, 2017 at 12:45 AM, Sergey Beryozkin <[email protected]> wrote: > Hi Max, sorry, I was just about to suggest why it may not work, but yes, > it should in the providers... > > If that does not work, check > > https://github.com/apache/cxf/blob/master/rt/frontend/jaxrs/ > src/main/java/org/apache/cxf/jaxrs/provider/ProviderFactory.java#L388 > > and please create a test project aftfer all :-) if you get stuck, I'll > have a look though most likely early next week > > Thanks, Sergey > > On 26/01/17 17:42, Maxim Solodovnik wrote: > >> Should I add this bean to <jaxrs:providers> section? >> >> WBR, Maxim >> (from mobile, sorry for the typos) >> >> On Jan 27, 2017 00:35, "Maxim Solodovnik" <[email protected]> wrote: >> >> MessageBodyWriter<List<AppointmentDTO>> doesn't work :(( >> Can I set breakpoint somewhere to debug this? >> >> On Fri, Jan 27, 2017 at 12:30 AM, Sergey Beryozkin <[email protected]> >> wrote: >> >> Hi, I won;t have time to investigate it now, but I;d say you'll have to >>> type it as >>> >>> MessageBodyWriter<List<AppointmentDTO>> >>> >>> give it a try please >>> >>> Cheers, Sergey >>> >>> On 26/01/17 17:28, Maxim Solodovnik wrote: >>> >>> Sure, >>>> >>>> Here is the service/method: [1] >>>> It is annotated with >>>> @Produces({MediaType.APPLICATION_JSON}) >>>> >>>> Method returns List<AppointmentDTO> >>>> >>>> Body writer is declared as follows: >>>> >>>> @Provider >>>> @Produces({MediaType.APPLICATION_JSON}) >>>> public class AppointmentMessageBodyWriter implements >>>> MessageBodyWriter<AppointmentDTO> { >>>> >>>> I can commit it and send the link to the github if it helps .... >>>> >>>> [1] >>>> https://github.com/apache/openmeetings/blob/3.2.x/openmeetin >>>> gs-webservice/src/main/java/org/apache/openmeetings/webservi >>>> ce/CalendarWebService.java#L97 >>>> >>>> On Fri, Jan 27, 2017 at 12:24 AM, Sergey Beryozkin < >>>> [email protected]> >>>> wrote: >>>> >>>> It may not be selected, depends on what type is returned, what media >>>> type >>>> >>>>> is set as a response content type, can you provide more info ? >>>>> >>>>> Cheers, Sergey >>>>> >>>>> On 26/01/17 17:19, Maxim Solodovnik wrote: >>>>> >>>>> I have added following bean to my Spring config: >>>>> >>>>>> <bean id="appointmentAppointmentMessageBodyWriter" >>>>>> class="org.apache.openmeetings.webservice.util.AppointmentMe >>>>>> ssageBodyWriter" >>>>>> /> >>>>>> >>>>>> And non of it's methods were called :( >>>>>> Am I missing any specific configuration? >>>>>> >>>>>> On Fri, Jan 27, 2017 at 12:12 AM, Sergey Beryozkin < >>>>>> [email protected]> >>>>>> wrote: >>>>>> >>>>>> Yes, ParamConverter works out only on the client side and in only on >>>>>> the >>>>>> >>>>>> server side, it is dedicated to a simple conversion of request URI or >>>>>>> header parameters (@PathParam, QueryParam, MatrixParam, Cookie, >>>>>>> HeaderParam) only >>>>>>> >>>>>>> >>>>>>> Cheers, Sergey >>>>>>> >>>>>>> On 26/01/17 17:05, Maxim Solodovnik wrote: >>>>>>> >>>>>>> So I need to create the class like this: >>>>>>> >>>>>>> http://memorynotfound.com/jax-rs-messagebodywriter/ >>>>>>>> And add it as spring bean and it will handle output? >>>>>>>> >>>>>>>> Why I was thought ParamConverter should convert to both sides: it >>>>>>>> has >>>>>>>> 2 >>>>>>>> methods: fromString and toString .... >>>>>>>> >>>>>>>> On Thu, Jan 26, 2017 at 11:59 PM, Sergey Beryozkin < >>>>>>>> [email protected]> >>>>>>>> wrote: >>>>>>>> >>>>>>>> Hi Max >>>>>>>> >>>>>>>> >>>>>>>> This provider only affect the input parameters, what is returned >>>>>>>>> from a >>>>>>>>> method is technically a message hence MessageBodyWriter is >>>>>>>>> responsible >>>>>>>>> for >>>>>>>>> writing it and MessageBodyReader - for reading it. >>>>>>>>> >>>>>>>>> ParamConverterProvider only supports PathParam, etc, but not the in >>>>>>>>> parameter which represents the body, again, it will be MBR which >>>>>>>>> will >>>>>>>>> read >>>>>>>>> it. >>>>>>>>> >>>>>>>>> ParamConverterProvider can be used on the client side to convert >>>>>>>>> the >>>>>>>>> parameters in the out flow >>>>>>>>> >>>>>>>>> HTH, Sergey >>>>>>>>> >>>>>>>>> On 26/01/17 16:45, Maxim Solodovnik wrote: >>>>>>>>> >>>>>>>>> Hello All, >>>>>>>>> >>>>>>>>> >>>>>>>>> I have implemented custom ParamProvider [1] and set it in >>>>>>>>>> jaxrs:server >>>>>>>>>> [2] >>>>>>>>>> It works as expected to convert Incoming parameters for example >>>>>>>>>> here >>>>>>>>>> [3] >>>>>>>>>> But it is not used while writing output JSON :( >>>>>>>>>> >>>>>>>>>> adding additional provider as follows >>>>>>>>>> <jaxrs:providers> >>>>>>>>>> <bean id="omParamProvider" >>>>>>>>>> class="org.apache.openmeetings.webservice.util.OmParamConver >>>>>>>>>> terProvider"/> >>>>>>>>>> <bean id="jsonProvider" >>>>>>>>>> class="org.apache.cxf.jaxrs.provider.json.JSONProvider"> >>>>>>>>>> <property name="serializeAsArray" value="true"/> >>>>>>>>>> </bean> >>>>>>>>>> </jaxrs:providers> >>>>>>>>>> >>>>>>>>>> Also has no effect "serializeAsArray" not working :( >>>>>>>>>> CXF 3.1.9 >>>>>>>>>> >>>>>>>>>> Thanks in advance >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> [1] >>>>>>>>>> https://github.com/apache/openmeetings/blob/3.2.x/openmeetin >>>>>>>>>> gs-webservice/src/main/java/org/apache/openmeetings/ >>>>>>>>>> webservice/util/OmParamConverterProvider.java >>>>>>>>>> [2] >>>>>>>>>> https://github.com/apache/openmeetings/blob/3.2.x/openmeetin >>>>>>>>>> gs-web/src/main/webapp/WEB-INF/classes/openmeetings-appli >>>>>>>>>> cationContext.xml#L285 >>>>>>>>>> [3] >>>>>>>>>> https://github.com/apache/openmeetings/blob/3.2.x/openmeetin >>>>>>>>>> gs-webservice/src/main/java/org/apache/openmeetings/ >>>>>>>>>> webservice/CalendarWebService.java#L97 >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> >>>>>>>>>> Sergey Beryozkin >>>>>>>>> >>>>>>>>> Talend Community Coders >>>>>>>>> http://coders.talend.com/ >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> >>>>>>> Sergey Beryozkin >>>>>>> >>>>>>> Talend Community Coders >>>>>>> http://coders.talend.com/ >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> >>>>> >>>> >>>> >>> -- >>> Sergey Beryozkin >>> >>> Talend Community Coders >>> http://coders.talend.com/ >>> >>> >> >> >> > > -- > Sergey Beryozkin > > Talend Community Coders > http://coders.talend.com/ > -- WBR Maxim aka solomax
