title: GAE Java 8 Runtime: java.nio.file.InvalidPathException: Illegal char <:> at index 68 in request URL
body: <p>I use Spring MVC (not Spring Boot) for my Google App Engine REST based web-app. Today I <a href="https://cloud.google.com/appengine/docs/standard/java/runtime-java8#Java_Selecting_the_Java_runtime" rel="nofollow noreferrer">upgraded GAE Java runtime to 1.8</a> (Java 8) and servlet-api 3.1. AppEngine SDK version 1.9.56.</p>
  
  <p>All the spring beans load perfectly without any error. I get this exception while its serving a request:</p>
  
  <pre><code>GET http://localhost:9080/api/systems/urn:bnb:system:0ee64dc1-5dcd-46a5-aeaa-3d15858cb79e/details
  
  2017-10-09 17:26:47.760:WARN:oejs.ServletHandler:qtp823914581-19: /api/systems/urn:bnb:system:0ee64dc1-5dcd-46a5-aeaa-3d15858cb79e/details
  java.nio.file.InvalidPathException: Illegal char &lt;:&gt; at index 68: C:\Amit\APP\app\apisvc\build\exploded-app\/api/systems/urn:bnb:system:0ee64dc1-5dcd-46a5-aeaa-3d15858cb79e/details/index.html
          at sun.nio.fs.WindowsPathParser.normalize(WindowsPathParser.java:182)
          at sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:153)
          at sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:77)
          at sun.nio.fs.WindowsPath.parse(WindowsPath.java:94)
          at sun.nio.fs.WindowsFileSystem.getPath(WindowsFileSystem.java:255)
          at org.eclipse.jetty.util.resource.PathResource.&lt;init&gt;(PathResource.java:213)
          at org.eclipse.jetty.util.resource.PathResource.addPath(PathResource.java:304)
          at com.google.appengine.tools.development.jetty9.StaticFileFilter.getResource(StaticFileFilter.java:133)
          at com.google.appengine.tools.development.jetty9.StaticFileFilter.maybeServeWelcomeFile(StaticFileFilter.java:172)
          at com.google.appengine.tools.development.jetty9.StaticFileFilter.doFilter(StaticFileFilter.java:96)
          at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1759)
          at com.google.appengine.tools.development.DevAppServerModulesFilter.doDirectRequest(DevAppServerModulesFilter.java:366)
          at com.google.appengine.tools.development.DevAppServerModulesFilter.doDirectModuleRequest(DevAppServerModulesFilter.java:349)
          at com.google.appengine.tools.development.DevAppServerModulesFilter.doFilter(DevAppServerModulesFilter.java:116)
          at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1751)
          at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:582)
          at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
          at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:524)
          at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)
          at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1180)
          at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:512)
          at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
          at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1112)
          at com.google.appengine.tools.development.jetty9.DevAppEngineWebAppContext.doScope(DevAppEngineWebAppContext.java:94)
          at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
          at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134)
          at com.google.appengine.tools.development.jetty9.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:597)
          at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134)
          at org.eclipse.jetty.server.Server.handle(Server.java:534)
          at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:320)
          at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251)
          at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:283)
          at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:108)
          at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93)
          at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.executeProduceConsume(ExecuteProduceConsume.java:303)
          at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:148)
          at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.execute(ExecuteProduceConsume.java:100)
          at org.eclipse.jetty.io.ManagedSelector.run(ManagedSelector.java:147)
          at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671)
          at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589)
          at java.lang.Thread.run(Thread.java:745)
  </code></pre>
  
  <p>And here is my appengine-web.xml:</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
  &lt;appengine-web-app xmlns="http://appengine.google.com/ns/1.0"&gt;
  
      &lt;!-- Test GAE instance --&gt;
      &lt;application&gt;webapp-1013&lt;/application&gt;
      &lt;version&gt;1-2&lt;/version&gt;
      &lt;threadsafe&gt;false&lt;/threadsafe&gt;
  
      &lt;runtime&gt;java8&lt;/runtime&gt;
  
      &lt;system-properties&gt;
          &lt;property name="DEFAULT_ENCODING" value="UTF-8" /&gt;
          &lt;property name="java.util.logging.config.file" value="WEB-INF/logging.properties"/&gt;
      &lt;/system-properties&gt;
  
      &lt;sessions-enabled&gt;true&lt;/sessions-enabled&gt;
  
      &lt;inbound-services&gt;
          &lt;service&gt;warmup&lt;/service&gt;
      &lt;/inbound-services&gt;
  
  &lt;/appengine-web-app&gt;
  </code></pre>
  
  <p>I didn't face this problem when I was using Java 7 runtime with GAE. Please help.</p>