eclipse中的Java App Engine项目返回Localhost上的Server App Engine Standard无法启动

时间:2018-08-10 04:47:37

标签: java google-app-engine google-eclipse-plugin google-app-engine-launch

我正在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

1 个答案:

答案 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:

  1. 如果还没有Java 8 VM,请安装它。
  2. 打开首选项> Java>已安装的JRE 。如果找不到Java 8 VM,则选择添加搜索
  3. 打开首选项> Java>已安装的JRE>执行环境,然后选择JavaSE-1.8,并确保将Java 8 VM选中为默认VM。

(如果您使用的是Java 1.7 VM,则可以重复上述操作,尽管请注意App Engine support for Java 7 will be turned off in January 2019。)

然后您应该可以启动。