Hi Marko,
I added those Marshaller & Unmarshaller Listener properties, was not a
rocket science to do :-), but simplifies things a bit
Cheers, Sergey
On 04/04/12 14:51, Voß, Marko wrote:
Hello Abhishek,
you can use the setProviders()-method on the JAXRSClientFactoryBean if you are
doing this programmatically.
If you are using the JAXRSClientFactory, there are also create()-methods
including the providers parameter.
Here is a good site about how to deal with this in any other way:
cxf.apache.org/docs/jax-rs-client-api.html
Hello Sergey,
no problem. :-)
Best regards,
Marko
Am 04.04.2012 13:41, schrieb Abhishek Sharma:
Hi Marko,
Thanks for the help, but I am doing this unmarshalling in webservice client
created using JAXRSClientFactoryBean.
How can I add providers in the webservice client.
Thanks,
Abhishek
-----Original Message-----
From: Sergey Beryozkin [mailto:[email protected]]
Sent: Wednesday, April 04, 2012 4:50 PM
To: [email protected]
Subject: Re: Unmarshalling interceptor
Hi Marko,
thanks for this tip, it could be an issue to deal with in scope of WS
requests, and CXF JAXB DataBinding used by JAX-WS may already offer such
an option,
however, it's definitely worth updating JAXBElementProvider with the
Listener property :-). it is possibele to set a ValidationEventHandler
on it, but not the Listener
Thanks, Sergey
On 04/04/12 14:12, Voß, Marko wrote:
Hello Abhishek Sharma,
I think this is a JAXB issue. You can register a Listener to the Unmarshaller.
http://docs.oracle.com/javase/6/docs/api/javax/xml/bind/Unmarshaller.html
http://docs.oracle.com/javase/6/docs/api/javax/xml/bind/Unmarshaller.Listener.html
There are also some examples in the Javadoc of the possibilities.
In order to get this working with CXF, you need to extend the
JAXBElementProvider:
(org.apache.cxf.jaxrs.provider.JAXBElementProvider)
Example:
public class MyJAXBElementProvider extends JAXBElementProvider {
// override the methods here like:
protected Unmarshaller createUnmarshaller(Class<?> cls, Type
genericType, boolean isCollection) {
Unmarshaller u = super.createUnmarshaller(cls, genericType,
isCollection);
u.setListener(MY_LISTENER);
return u;
}
}
Now, register the provider:
<jaxrs:server id="RestServices" address="">
<jaxrs:providers>
<ref bean="MyJaxbProvider"/>
</jaxrs:providers>
</jaxrs:server>
Best regards,
Marko
Am 04.04.2012 12:56, schrieb Abhishek Sharma:
Hi,
I've a requirement when writing a CXF client. In my webservice response I am
getting a list of myData object.
Now I want some group data by iterating over the entire list. The problem is
size of the list is high so I don't want to
iterate again.
I know the unmarshaller used by the client is doig the same when converting XML
to object. If somehow I can intercept
while unmarshal and calculate group data then I don't have to iterate.
I want to see some example code using Unmarshal or Pre_Logical or Post_Logical
filter.
Thanks,
*Abhishek Sharma**|* -
| MakeMyTrip.com, 243 SP Infocity, Udyog Vihar Phase 1, Gurgaon, Haryana - 122
016, India
http://www.mailmktg.makemytrip.com/signature/images/bulb.gif*What's new?*My
Trip Rewards - An exclusive loyalty program
for MakeMyTrip customers.<https://rewards.makemytrip.com/MTR>
http://www.mailmktg.makemytrip.com/signature/images/MMT-signature-footer-V4.gif<http://www.makemytrip.com/>
http://www.mailmktg.makemytrip.com/signature/images/map-icon.gif
<http://www.makemytrip.com/support/gurgaon-travel-agent-office.php>
*Office Map*
http://www.mailmktg.makemytrip.com/signature/images/facebook-icon.gif
<http://www.facebook.com/pages/MakeMyTrip-Deals/120740541030?ref=search&sid=100000077980239.1422657277..1>
*Facebook*
http://www.mailmktg.makemytrip.com/signature/images/twitter-icon.gif<http://twitter.com/makemytripdeals>
*Twitter*
-------------------------------------------------------
Fachinformationszentrum Karlsruhe, Gesellschaft für wissenschaftlich-technische
Information mbH.
Sitz der Gesellschaft: Eggenstein-Leopoldshafen, Amtsgericht Mannheim HRB
101892.
Geschäftsführerin: Sabine Brünger-Weilandt.
Vorsitzender des Aufsichtsrats: MinDirig Dr. Thomas Greiner.
-------------------------------------------------------
Fachinformationszentrum Karlsruhe, Gesellschaft für wissenschaftlich-technische
Information mbH.
Sitz der Gesellschaft: Eggenstein-Leopoldshafen, Amtsgericht Mannheim HRB
101892.
Geschäftsführerin: Sabine Brünger-Weilandt.
Vorsitzender des Aufsichtsrats: MinDirig Dr. Thomas Greiner.
--
Sergey Beryozkin
Talend Community Coders
http://coders.talend.com/
Blog: http://sberyozkin.blogspot.com