title: Jetty, "No multipart config for servlet" problem
body: <p>I'm writing handler for file transfer. The request is multipart HTTP message. The message is correct - tested on other servers.</p>
  
  <p>The problem is "java.lang.IllegalStateException: No multipart config for servlet" on getParts() call.</p>
  
  <p>The test code:</p>
  
  <pre><code>@SuppressWarnings("serial")
  @MultipartConfig
  @WebServlet(urlPatterns={"/upload"}, name="upload")
  public class FilesServlet extends HttpServlet
  {
      @Override
      protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
      {
          resp.setContentType("text/plain");
          PrintWriter out = resp.getWriter();
  
          int i=0;
          for(Part part: req.getParts())
          {
              out.printf("Got part: name=%s, size=%d%n",part.getName(), part.getSize());
              part.write(String.format("part-%02d.dat",i++));
          }
      }
  }
  </code></pre>
  
  <p>The exception:</p>
  
  <pre><code>java.lang.IllegalStateException: No multipart config for servlet
      at org.eclipse.jetty.server.Request.getParts(Request.java:2327)
      at org.eclipse.jetty.server.Request.getParts(Request.java:2314)
      at com.rad.server.servlet.FilesServlet.doPost(FilesServlet.java:31)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
      at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:860)
      at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:535)
      at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188)
      at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
      at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188)
      at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1253)
      at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:168)
      at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
      at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
      at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:166)
      at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1155)
      at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
      at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
      at org.eclipse.jetty.server.Server.handle(Server.java:530)
      at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:347)
      at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:256)
      at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279)
      at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:102)
      at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124)
      at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:247)
      at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.produce(EatWhatYouKill.java:140)
      at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:708)
      at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:626)
      at java.lang.Thread.run(Thread.java:745)
  </code></pre>
  
  <p>The jars are: jetty-server-9.4.8 and javax-servlet-api-3.10.</p>
  
  <p>What is wrong here?</p>