Hi Jim,

I'm not 100% sure I understand what you exactly want to do:

 * For the encoding/client side, your approach is OK. 

 * For the decoding/server side, you can directly use the request's entity
as a APPLICATION_XML representation, for example using
req.getEntity().toString().

There is no need to wrap the request entity into a DecodeRepresentation or
even an EncodeRepresentation as this is already done by the
"decoderService".

If you want to encoded representation (GZIP), you have to turn off the
"decoderService" on your application.

 * Note that in the future, we'd like to add a "encoderService":
http://restlet.tigris.org/issues/show_bug.cgi?id=208

Best regards,
Jerome  

> -----Message d'origine-----
> De : Jim Alateras [mailto:[EMAIL PROTECTED] 
> Envoyé : mardi 9 octobre 2007 14:51
> À : [email protected]
> Objet : Re: problems using gzip encoding
> 
> Hey Jerome,
> 
> I want the decoder service enabled. I guess my question is 
> whether i am 
> doing something wrong.
> 
> On the client I do something like this
> 
> Representation rep = new EncodeRepresentation(Encoding.GZIP,  
>                       new 
> StringRepresentation(getXStream().toXML(records),             
>                        
> MediaType.APPLICATION_XML));
> 
> and on the server side i need to do something like this to 
> retrieve the 
> original StringRepresentation.
> 
> (EncodeRepresentation)((DecodeRepresentation)entity).getWrappe
dRepresentation()).getWrappedRepresentation();
> 
> So the StringRepresentation is wrapped inside the 
> EncodeRepresentation 
> which is subsequently wrapped inside a DecodeRepresentation.
> 
> Can you confirm
> 
> cheers
> </jima>
> 
> 
> Jerome Louvel wrote:
> > Hi Jim,
> > 
> > The Application.decoderService is already able to 
> automatically decode
> > incoming compressed representations. If you prefer to disable this
> > behavior, just do:
> > 
> > myApp.getDecoderService().setEnabled(false);
> > 
> > before starting the application.
> > 
> > Best,
> > Jerome
> > 
> > 
> > 2007/10/9, Jim Alateras <[EMAIL PROTECTED]>:
> >> Okay this is my problem. I was assuming that i would get 
> the wrapped
> >> representation once it hits my resource by i get the
> >> DecodeRepresentation instance instead.
> >>
> >> Can I configure my Application so that the wrapped 
> representation is
> >> sent to my resource class rather than the DecodeRepresentation?
> >>
> >>
> >> cheers
> >> </jima>
> >> Jim Alateras wrote:
> >>> I am trying use gzip for all my representations and use the tunnel
> >>> filter, on the application, to automatically decode the 
> body before
> >>> passing it to the router.
> >>>
> >>> This how i encode the rep
> >>>
> >>> new EncodeRepresentation(Encoding.GZIP, new
> >>>
> >>> StringRepresentation(getXStream().toXML(records),
> >>> MediaType.APPLICATION_XML));
> >>>
> >>> but i end up getting the following error on the server.
> >>>
> >>> java.io.IOException: Not in GZIP format
> >>>         at
> >>> java.util.zip.GZIPInputStream.readHeader(GZIPInputStream.java:132)
> >>>         at 
> java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:58)
> >>>         at 
> java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:68)
> >>>         at
> >>> 
> com.noelios.restlet.application.DecodeRepresentation.getDecode
> dStream(DecodeRepresentation.java:138)
> >>>
> >>>         at
> >>> 
> com.noelios.restlet.application.DecodeRepresentation.getStream
> (DecodeRepresentation.java:115)
> >>>
> >>>         at
> >>> 
> com.noelios.restlet.application.DecodeRepresentation.getText(D
> ecodeRepresentation.java:189)
> >>>
> >>>         at
> >>> 
> au.com.observant.ringocore.resource.syslog.SyslogsResource.pos
> t(SyslogsResource.java:103)
> >>>
> >>>         at 
> org.restlet.resource.Resource.handlePost(Resource.java:479)
> >>>         at org.restlet.Finder.handle(Finder.java:296)
> >>>         at org.restlet.Filter.doHandle(Filter.java:105)
> >>>         at org.restlet.Filter.handle(Filter.java:134)
> >>>         at org.restlet.Router.handle(Router.java:444)
> >>>         at org.restlet.Filter.doHandle(Filter.java:105)
> >>>         at org.restlet.Filter.handle(Filter.java:134)
> >>>         at org.restlet.Filter.doHandle(Filter.java:105)
> >>>         at 
> com.noelios.restlet.StatusFilter.doHandle(StatusFilter.java:87)
> >>>         at org.restlet.Filter.handle(Filter.java:134)
> >>>         at org.restlet.Filter.doHandle(Filter.java:105)
> >>>         at org.restlet.Filter.handle(Filter.java:134)
> >>>         at
> >>> 
> com.noelios.restlet.application.ApplicationHelper.handle(Appli
> cationHelper.java:96)
> >>>
> >>>         at org.restlet.Application.handle(Application.java:293)
> >>>         at org.restlet.Uniform.handle(Uniform.java:97)
> >>>         at
> >>>
> >>> cheers
> >>> </jima>
> >>>
> > 

Reply via email to