2017-10-09 4 views
0

J'utilise Spring MVC (pas Spring Boot) pour mon application Web basée sur REST Google App Engine. Aujourd'hui, je upgraded GAE Java runtime to 1.8 (Java 8) et servlet-api 3.1. AppEngine SDK version 1.9.56.GAE Java 8 Exécution: java.nio.file.InvalidPathException: caractère illégal <:> à l'index 68 dans la requête URL

Tous les haricots à ressort se chargent parfaitement sans aucune erreur. Je reçois cette exception alors que son service une requête:

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 <:> 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.<init>(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) 

Et voici mon appengine-web.xml:

<?xml version="1.0" encoding="utf-8"?> 
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0"> 

    <!-- Test GAE instance --> 
    <application>webapp-1013</application> 
    <version>1-2</version> 
    <threadsafe>false</threadsafe> 

    <runtime>java8</runtime> 

    <system-properties> 
     <property name="DEFAULT_ENCODING" value="UTF-8" /> 
     <property name="java.util.logging.config.file" value="WEB-INF/logging.properties"/> 
    </system-properties> 

    <sessions-enabled>true</sessions-enabled> 

    <inbound-services> 
     <service>warmup</service> 
    </inbound-services> 

</appengine-web-app> 

Je ne suis pas face à ce problème quand j'utilisais l'exécution Java 7 avec GAE . S'il vous plaît aider.

Répondre

2

Il semble que vous rencontriez un bogue affectant le serveur de l'application de développement sous Windows (cela n'affecte pas les applications déployées dans la production App Engine). Le bug est suivi ici: https://issuetracker.google.com/issues/63595917

Un correctif pour cela est inclus dans la prochaine version du SDK, 1.9.58.

+0

Merci pour la réponse rapide. J'attendrai que SDK v1.9.58 soit disponible dans Maven Repository. – Amit