Hi Geoff,
AFAIK there is no switch with the LW HTTP server to turn on and off
chunked encoding.
The only thing i can think of is to try and use a response filter that
buffers:
public class BufferResponseFilter implements ContainerResponseFilter {
private final class Adapter implements ContainerResponseWriter {
private final ContainerResponseWriter crw;
private ContainerResponse response;
private ByteArrayOutputStream baos;
Adapter(ContainerResponseWriter crw) {
this.crw = crw;
}
public OutputStream writeStatusAndHeaders(long contentLength,
ContainerResponse response) throws IOException {
this.response = response;
return this.baos = new ByteArrayOutputStream();
}
}
public void finish() throws IOException {
OutputStream out = crw.writeStatusAndHeaders(baos.size(),
response);
out.write(baos.toByteArray());
crw.finish();
}
}
public ContainerResponse filter(ContainerRequest request,
ContainerResponse response) {
response.setContainerResponseWriter(
new Adapter(response.getContainerResponseWriter()));
return response;
}
}
ClassNamesResourceConfig r = new
ClassNamesResourceConfig(HttpJsonRpc.class);
r.getContainerResponseFilters().add(BufferResponseFilter.class);
...
Paul.
On Sep 14, 2010, at 6:27 PM, Geoff Flarity wrote:
> Hi,
>
> I've been using Jersey to create simple JSONRPC control logic in
> various daemons I've implemented. For the most part it's been great.
> However I've run into a bit of a snag as one of the client libraries
> (python) doesn't handle the chunked encoding properly. Since there's
> really no need for the chunked encoding with this application I'd
> like to simply disable it.
>
> Try as I might I can't find a way to do so. Here's the server code,
> the JsonRpc class is just a simple dispatcher using annotations.
>
>
> ClassNamesResourceConfig r = new
> ClassNamesResourceConfig(HttpJsonRpc.class);
>
> try {
>
> server = HttpServerFactory.create("http://0.0.0.0:"+port
> +"/", r);
>
> server.start();
>
> } catch (java.io.IOException e) {
>
> logger.severe("error starting http json rpc server on
> port "+port);
>
> throw new Error("error starting http json rpc server on
> port "+port, e);
>
> }
>
> Is it possible to disable this? If so I'd appreciate any pointers in
> the right direction.
>
>
>
> Thanks,
>
> Geoff
>
>