Hi

On Tue, Jul 26, 2011 at 12:57 AM, rbinion <rbin...@gmail.com> wrote:
> I'm looking for suggestions on how best to approach a problem.
>
> I'm currently working on a project where we are using CXF to expose REST
> services which will be consumed both by direct service consumers as well as
> a co-developed spring MVC/javascript based application.
>
> I suspect that we are doing fairly typical stuff in that we are annotating
> our services to produce both xml and json (driven by jaxb annotations), and
> this is working fine for simple marshaling. However I now have the need to
> also handle some fairly simple transformations (omitting and renaming
> elements) both coming in and out of a particular service.
>
> The reason for the transformation is that I essentially have a POJO that
> represents somewhat of a "union of types", and I have no compelling reason
> to realize this "union" as a class hierarchy, other than to make the service
> interface "clean" (the underlying business service prefers to operate on
> this "union" as does the data access layer). More or less, I am trying to
> avoid creating DTOs, or rather I am attempting to realize the DTO's only
> through XML transformation.
>
> So, I would like to provide a simple set of rules (xslt) to do the
> transformation for both XML and json output, but that is where I am not
> conceptualizing the simple solution. XSLTJaxbProvider seems to be very close
> to what I want (and indeed I have been able to get this to work for
> marshaling XML), but I'm not sure how to extend this approach to also work
> for JSON transformations without having to write two XSLT's (one for
> handling XML and the other for handling json).
>
> Am I thinking about the problem wrong, i.e. two templates is the way to
> handle this (regardless of the maintenance overhead), and/or I should just
> stop being lazy and implement the darn POJO's (again irrespective of the
> maintenance overhead) ...
>
> If I am on the right track but some sample code would be helpful in seeing
> where I am going astray, I can provide that as well ...
>
I think you are on the right track. The only complication with
XSLTJaxbProvider and a dedicated template producing JSON is that
this template will need to deal with creating a JSON sequence itself.
I think it would be nice to get a similar XSLTJsonProvider which would
create a
writer sitting between JAXB and Jettison and that would basically
enable reusing the same single template for producing XML & JSON
transformed output. Please feel free to create an enhancement request
- and a patch would help :-)
The other option is to try TransformFeature: it will work for both XML
and JSON (JAXB-driven):
http://cxf.apache.org/docs/transformationfeature.html

Cheers, Sergey





> Any suggestions/revelations would be greatly appreciated.
>
>
>
> --
> View this message in context: 
> http://cxf.547215.n5.nabble.com/XSLTJaxbProvider-and-json-tp4632954p4632954.html
> Sent from the cxf-dev mailing list archive at Nabble.com.
>



-- 
Sergey Beryozkin

http://sberyozkin.blogspot.com
Talend - http://www.talend.com

Reply via email to