cxf-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sergey Beryozkin <sberyoz...@gmail.com>
Subject Re: Jaxrs provider to serialize outgoing payload
Date Thu, 26 Jan 2017 17:45:37 GMT
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" <solomax666@gmail.com> 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 <sberyozkin@gmail.com>
> 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 <sberyozkin@gmail.com>
>>> 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 <
>>>>> sberyozkin@gmail.com>
>>>>> 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 <
>>>>>>> sberyozkin@gmail.com>
>>>>>>> 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/

Mime
View raw message