I think I see how I need to proceed but I have some questions inline
below....
Here is what I think I need to do:
* Define a MessageBodyWriter for the response type returned by by
resource methods like below...
@Produces("text/html")
@Provider
public class HTMLMessageBodyWriter implements
MessageBodyWriter<MyResponseType> {
public boolean isWriteable(Class<?> type, Type type1,
Annotation[] antns, MediaType mt) {
return MyResponseType.class.isAssignableFrom(type);
}
public long getSize(MyResponseType t, Class<?> type, Type
type1, Annotation[] antns, MediaType mt) {
return -1;
}
public void writeTo(MyResponseType response, Class<?> type,
Type type1, Annotation[] antns, MediaType mt, MultivaluedMap<String,
Object> mm, OutputStream out) throws IOException, WebApplicationException {
Writer writer = new OutputStreamWriter(out);
HTMLFormatter htmlFormatter = new HTMLMarshaller();
htmlFormatter.marshall( response, writer);
writer.close();
out.flush();
}
}
* Define an HTMLFormatter class to marshall the response to custom
formatted HTML
* Use jersey-freemarker to use freemarker templates to generate the
HTML as needed
What I cannot determine is how to best get the freemarker template
within my HTMLFormatter class. Does the com.sun.jersey.api.view.Viewable
<http://jersey.java.net/nonav/apidocs/latest/jersey/com/sun/jersey/api/view/Viewable.html>class
have a role to play? Can any one tell me if I am on the right track and
how bets to get the freemarker template? Thanks.
Post by Farrukh NajmiHi ManiKanta,
Thank you for introducing me to the Viewable
<http://jersey.java.net/nonav/apidocs/1.1.0-ea/jersey/com/sun/jersey/api/view/Viewable.html>
class in jersey. It will be useful in my solution. However, your post
* Keep a single set of resource methods that return XML response
* Allow XML response to be algorithmically mapped to HTML using
some custom mapping class(es)
I had mentioned that my current resource methods somehow support
"application/json" automatically using the
com.sun.jersey:jersey-json:jar:1.10:compile dependency even though the
method just returns an XML response. Clearly the jersey-json adds
support for marshalling/unmarshalling json from XML. I want to do
similar by marshalling responses to HTML.
I am just not familiar enough with jersey API and framework as to how
to do that. Given more time I will figure it out but I was hoping that
someone could provide high level steps of how to do that. Thank in advance.
you could do that using Viewable
<http://jersey.java.net/nonav/apidocs/1.1.0-ea/jersey/com/sun/jersey/api/view/Viewable.html> we
are serving the html response for html mime type by having a generic
resource method in super class
see
http://blog.docuverse.com/2009/08/04/using-jsp-with-jersey-jax-rs-implementation/
http://stackoverflow.com/questions/3361877/jersey-viewable-with-status-code
ManiKanta G
twitter.com/ManiKantaG <http://twitter.com/ManiKantaG>
On Sat, Dec 17, 2011 at 11:39 PM, Farrukh Najmi
Hi Guys,
My jersey based REST endpoint serves resources in their native
XML format when default or in JSON format when application/json
mediatype is specified. Things are working pretty well.
I would like to add a simple Web interface for human access to my
REST endpoint and was thinking that I could add support for
What I am not sure of what is the best way to do this in jersey.
Jersey support JSON format without any help from my code so I
assume there is a global filter somewhere to transform XML to
JSON. I am looking to do similar with HTML. Thanks for any
guidance on this.
--
Regards,
Farrukh Najmi
Web:http://www.wellfleetsoftware.com
--
Regards,
Farrukh Najmi
Web: http://www.wellfleetsoftware.com