Java App Engine Project в eclipse return Не удалось запустить серверный стандарт приложений на Localhost

Я работаю над приложением Java App Engine, использующим Java 7 в Eclipse Photon. У меня есть существующее веб-приложение Java движка приложений, полученное от одного из наших разработчиков, когда я создаю новый стандартный проект движка приложений, импортирую этот проект и пытаюсь запустить его, возвращая эту ошибку:

Не удалось запустить Standard 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 ответ

Таким образом, ваша трассировка стека показывает, что вы запускаете виртуальную машину Java 9 (или более позднюю), которая не поддерживается инструментами разработки App Engine.

at java.base/java.security.AccessController.doPrivileged(Native Method)

Предполагая, что вы используете Cloud Tools для Eclipse, сначала убедитесь, что ваш Google Cloud SDK обновлен. Если вы используете свою собственную копию, запустите gcloud components update в командной строке. Если вы позволяете Cloud Tools для Eclipse управлять своим SDK, откройте " Настройки"> "Google Cloud Tools" и выберите " Обновить".

Затем вам нужно будет настроить Eclipse для использования JRE или JDK Java 8 в качестве запуска JVM по умолчанию для Java 8:

  1. Установите виртуальную машину Java 8, если у вас ее еще нет.
  2. Откройте " Настройки"> "Java"> "Установленные JRE". Выберите Добавить или Поиск, если ваша виртуальная машина Java 8 не найдена.
  3. Откройте " Настройки"> "Java"> "Установленные JRE"> "Среды выполнения" и выберите JavaSE-1.8и убедитесь, что ваша виртуальная машина Java 8 отмечена как виртуальная машина по умолчанию.

(Вы можете повторить вышеизложенное, если вы используете виртуальную машину Java 1.7, хотя учтите, что поддержка App Engine для Java 7 будет отключена в январе 2019 года.)

После этого вы сможете запустить.

Другие вопросы по тегам