Google App Engine
Scalatra doesn’t work on Google App Engine (GAE).
Why not?!
Short answer
Scalatra runs on the Java platform (JRE). GAE doesn’t support the JRE.
Long answer
GAE only supports a non-standard subset of the JRE, requiring that apps be specifically designed for it. Here are a few of the limitations:
- No support for Servlet 3.0
- Essential request headers are removed.
- Essential response headers are removed.
- Streaming responses are unsupported.
- GAE is so aggressive about terminating slow responders that the app can be left in an inconsistent state according to the rules of the JVM.
- Apps cannot make client requests without using GAE’s fetch service.
- Not all JRE classes are supported.
- Logging is possible only through
java.util.logging
.
Future
It’s really the Servlet 3.0 that is absolutely essential for Scalatra. Once that is implemented, if there is sufficient demand, it may be possible to support GAE without forking the Scalatra codebase.
Pretty please?
Scalatra 2.0.x was based on Servlet 2.5, and may work on GAE with the above caveats. This is unsupported by the Scalatra team, as we believe you will get a better Scalatra experience with the other Platform as a Service options.