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.
On 12/19/2011 09:13 AM, Farrukh Najmi wrote:
> Hi 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
> does not seem to address the need I have as follows:
>
> * 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.
>
> On 12/19/2011 02:02 AM, ManiKanta G wrote:
>> 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
>> <farrukh_at_wellfleetsoftware.com
>> <mailto:farrukh_at_wellfleetsoftware.com>> wrote:
>>
>> 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
>> mediatype text/html in my endpoints resource methods via @Produces.
>>
>> 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