2016-07-18 24 views
0

Ich habe ein Backend mit Java, App Engine, Gradle und Cloud Endpoints geschrieben. Ich teste die Endpunkte mit den FunctionalTests aus dem App Engine Gradle Plugin. Das funktioniert ganz gut.ModuleException: Unbekanntes Modul

Das Problem, das ich habe, ist, dass einer der Endpunkte eine Aufgabe an ein Modul, die nicht existiert, zu buchen. Zumindest auf dem lokalen Entwicklungsserver stimmt das. In der Produktion existiert dieses Modul. Wie kann ich dem lokalen Entwicklungsserver mitteilen, dass dieses Modul existiert?

com.google.appengine.api.modules.ModulesException: Unknown module 
     at com.google.appengine.api.modules.ModulesServiceImpl$ModulesServiceFutureWrapper.convertApplicationException(ModulesServiceImpl.java:365) 
     at com.google.appengine.api.modules.ModulesServiceImpl$ModulesServiceFutureWrapper.convertException(ModulesServiceImpl.java:352) 
     at com.google.appengine.api.utils.FutureWrapper.get(FutureWrapper.java:97) 
     at com.google.appengine.api.modules.ModulesServiceImpl.getAsyncResult(ModulesServiceImpl.java:104) 
     at com.google.appengine.api.modules.ModulesServiceImpl.getVersionHostname(ModulesServiceImpl.java:321) 
     at com.peerke.outdoorpuzzlegame.backend.common.tasks.NotifyBackendTask.notifyBackendClients(NotifyBackendTask.java:51) 
     at com.peerke.outdoorpuzzlegame.backend.common.tasks.NotifyBackendTask.notifyUpdateHighScores(NotifyBackendTask.java:28) 
     at com.peerke.outdoorpuzzlegame.backend.gameclientendpoint.endpoints.ActiveGamesEndpoint.createTeam(ActiveGamesEndpoint.java:81) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:606) 
     at com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java:130) 
     at com.google.api.server.spi.SystemService.invokeServiceMethod(SystemService.java:363) 
     at com.google.api.server.spi.SystemServiceServlet.execute(SystemServiceServlet.java:113) 
     at com.google.api.server.spi.SystemServiceServlet.doPost(SystemServiceServlet.java:71) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
     at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) 
     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166) 
     at com.googlecode.objectify.ObjectifyFilter.doFilter(ObjectifyFilter.java:48) 
     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 
     at com.peerke.outdoorpuzzlegame.backend.common.gcp.GCPFilter.doFilter(GCPFilter.java:35) 
     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 
     at com.google.appengine.api.socket.dev.DevSocketFilter.doFilter(DevSocketFilter.java:74) 
     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 
     at com.google.appengine.tools.development.ResponseRewriterFilter.doFilter(ResponseRewriterFilter.java:128) 
     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 

-Code, die ich auf der Stelle laufen, dass ich die Ausnahme erhalten:

ModulesServiceFactory.getModulesService().getVersionHostname(GAME_RUNNER_SERVICE, ModulesServiceFactory.getModulesService().getCurrentVersion())) 

Antwort

0

Habe ich es mir heraus. Anscheinend gibt es eine Möglichkeit, alle Module gleichzeitig mit dem lokalen Dev-Server laufen zu lassen. Dann kann es die Module herausfinden.

Wenn andere dasselbe tun möchten, erstellen Sie das Ear-Modul und wenden Sie das Gradle App Engine-Plugin darauf an.