title: Using GAE and Jersey with multipart/form-data feature enabled crashes servlet on strartup
body: <p>I am using GAE 1.9.10 and Jersey 2.12. </p>
  
  <p>I enable the <code>multipart/form-data</code> feature in my <code>web.xml</code> as follows</p>
  
  <pre><code>&lt;init-param&gt;
      &lt;param-name&gt;jersey.config.server.provider.classnames&lt;/param-name&gt;
      &lt;param-value&gt;
          org.glassfish.jersey.server.mvc.jsp.JspMvcFeature;
          org.glassfish.jersey.media.multipart.MultiPartFeature
       &lt;/param-value&gt;
  &lt;/init-param&gt;
  </code></pre>
  
  <p>The web pages loads perfectly on my local dev server including the <code>multipart</code> feature, but when I  upload to <code>xxx.appspot.com</code> and request any page going through the Jersey servlet I immediately get the following error in my logs (and I get an Http error 500 on the web page):</p>
  
  <pre><code>javax.servlet.UnavailableException: A MultiException has 3 exceptions.  They are:
  1. java.lang.SecurityException: Unable to create temporary file
  2. java.lang.IllegalStateException: Unable to perform operation: create on org.glassfish.jersey.media.multipart.internal.MultiPartReaderServerSide
  3. java.lang.IllegalStateException: Unable to perform operation: create on org.glassfish.jersey.message.internal.MessageBodyFactory
  
      at org.mortbay.jetty.servlet.ServletHolder.makeUnavailable(ServletHolder.java:415)
      at org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:458)
      at org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:263)
      at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
      at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:685)
      at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
      at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250)
      at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)
      at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467)
      at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
      at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.createHandler(AppVersionHandlerMap.java:199)
      at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.getHandler(AppVersionHandlerMap.java:174)
      at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:134)
      at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(JavaRuntime.java:446)
      at com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:438)
      at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:445)
      at com.google.tracing.CurrentContext.runInContext(CurrentContext.java:220)
      at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:309)
      at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:301)
      at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:442)
      at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:251)
      at java.lang.Thread.run(Thread.java:724)
  </code></pre>
  
  <p>I know that GAE does not allow creation of files so clearly that is where the issue lies (as can be seen from the error above), but I do not know how to resolve this.</p>
  
  <p>Does anyone know a solution? Thanks!</p>