我正在Eclipse Photon中使用Java 7开发Java App Engine应用程序。创建新的App Engine标准项目并导入该项目并尝试运行该项目时,我的一位开发人员收到了一个存在的App Engine Java Web应用程序,返回此错误:
本地主机上的Server App Engine Standard无法启动。
这是堆栈跟踪:
Warning: Google App Engine Java 7 runtime is deprecated.
Warning: See https://cloud.google.com/appengine/docs/deprecations/java7
java.lang.RuntimeException: Unable to create a DevAppServer
at com.google.appengine.tools.development.DevAppServerFactory.doCreateDevAppServer(DevAppServerFactory.java:401)
at com.google.appengine.tools.development.DevAppServerFactory.access$000(DevAppServerFactory.java:31)
at com.google.appengine.tools.development.DevAppServerFactory$1.run(DevAppServerFactory.java:318)
at com.google.appengine.tools.development.DevAppServerFactory$1.run(DevAppServerFactory.java:315)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at com.google.appengine.tools.development.DevAppServerFactory.createDevAppServer(DevAppServerFactory.java:314)
at com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:374)
at com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:45)
at com.google.appengine.tools.development.DevAppServerMain.run(DevAppServerMain.java:247)
at com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:238)
Caused by: java.lang.ClassCastException: ClassLoader is jdk.internal.loader.ClassLoaders$AppClassLoader@4459eb14, not a URLClassLoader.
at com.google.apphosting.utils.security.SecurityManagerInstaller.generatePolicyFile(SecurityManagerInstaller.java:139)
at com.google.apphosting.utils.security.SecurityManagerInstaller.install(SecurityManagerInstaller.java:94)
at com.google.appengine.tools.development.DevAppServerFactory.doCreateDevAppServer(DevAppServerFactory.java:377)
... 9 more
答案 0 :(得分:0)
因此,堆栈跟踪表明您正在使用Java 9 VM(或更高版本)启动,而App Engine开发工具不支持该Java。
at java.base/java.security.AccessController.doPrivileged(Native Method)
假设您正在使用Eclipse的Cloud Tools,请首先确保您的Google Cloud SDK是最新的。如果您使用自己的副本,请在命令行上运行gcloud components update
。如果您要让Eclipse的Cloud Tools管理您的SDK,请打开首选项> Google Cloud Tools ,然后选择 Update 。
然后,您需要将Eclipse配置为使用Java 8 JRE或JDK作为Java 8启动的默认JVM:
JavaSE-1.8
,并确保将Java 8 VM选中为默认VM。(如果您使用的是Java 1.7 VM,则可以重复上述操作,尽管请注意App Engine support for Java 7 will be turned off in January 2019。)
然后您应该可以启动。