I have developed a ring/compojure app which receives and servers JSON. All is well in 'lein ring server' but as soon as I do 'lein ring uberwar' and deploy it to tomcat 6 or 7 it fails. To be explicit, the app deploys and I can view the static resources, but as soon as I issue a JSON POST I get the following error:
java.io.IOException: Stream closed
org.apache.catalina.connector.InputBuffer.read(InputBuffer.java:325)
org.apache.catalina.connector.CoyoteInputStream.read(CoyoteInputStream.java:193)
sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:283)
sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:325)
sun.nio.cs.StreamDecoder.read(StreamDecoder.java:177)
java.io.InputStreamReader.read(InputStreamReader.java:184)
java.io.BufferedReader.fill(BufferedReader.java:154)
java.io.BufferedReader.read(BufferedReader.java:175)
clojure.core$slurp.doInvoke(core.clj:6279)
clojure.lang.RestFn.invoke(RestFn.java:410)
ring.middleware.json$read_json.doInvoke(json.clj:12)
clojure.lang.RestFn.invoke(RestFn.java:423)
ring.middleware.json$wrap_json_body$fn__1031.invoke(json.clj:19)
ring.middleware.json$wrap_json_params$fn__1035.invoke(json.clj:31)
compojure.core$routing$fn__362.invoke(core.clj:107)
clojure.core$some.invoke(core.clj:2443)
compojure.core$routing.doInvoke(core.clj:107)
clojure.lang.RestFn.applyTo(RestFn.java:139)
clojure.core$apply.invoke(core.clj:619)
compojure.core$routes$fn__366.invoke(core.clj:112)
health.servlet$_service$fn__1016.invoke(servlet.clj:1)
ring.util.servlet$make_service_method$fn__50.invoke(servlet.clj:126)
health.servlet$_service.invoke(servlet.clj:1)
health.servlet.service(Unknown Source)
[/code]