Как исправить "com.google.cloud.tools.appengine.AppEngineException: java.nio.file.NoSuchFileException: ... \ exploded- {project} \ WEB-INF \ appengine-web.xml" - PullRequest
0 голосов
/ 09 июля 2019

Я работаю над развертыванием в стандартной среде Google App Engine.Перед развертыванием я хочу выполнить локальное тестирование, поэтому я запускаю gradlew appengineRun.

Все работает до тех пор, пока не появится эта ошибка: "com.google.cloud.tools.appengine.AppEngineException: java.nio.file.NoSuchFileException: C: \ Users {пользователь} \ StudioProjects {project} \ build \ exploded- {project} \ WEB-INF \ appengine-web.xml ".

Это очень странно, как я проверялструктура файла в моем проекте и appengine-web.xml присутствует.

{project}
    ...
    build
        ...
        exploded-{project}
            ...
            WEB-INF
                ...
                appengine-web

Я не знаю, почему файл «не существует», когда я вижу, что он доступен именно там, где и должен быть.

Мой файл appengine-web.xml:

<?xml version="1.0" encoding="utf-8"?>
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
    <application>{ID}</application>
    <use-google-connector-j>true</use-google-connector-j>
    <version>1</version>
    <threadsafe>true</threadsafe>
    <runtime>java8</runtime>
    <system-properties>
        <property name="java.util.logging.config.file" value="WEB-INF/classes/logging.properties" />
    </system-properties>
    <automatic-scaling>
        <!-- scaling details -->
    </automatic-scaling>
</appengine-web-app>

У меня есть одна проблема, пространство имен выделено красным, и при прокрутке я получаю сообщение URI is not registered (Settings | Languages & Frameworks | Schemas and DTDs).

Я пытался исправить это решение, извлекая ресурс, но это не удалось.Я не знаю, может ли это быть проблемой, но это мое единственное достойное предположение.

Мне нужно, чтобы файл appengine-web.xml был распознан, чтобы прогрессировать.Если кто-то знает, что происходит или у него есть идея, чтобы указать мне правильное направление, это будет оценено.

1 Ответ

0 голосов
/ 09 июля 2019

TLDR:

Существует разница между файлом с именем и типом, который вы выбираете, и именем файла в форме {имя-файла}. {Тип}.Если вы хотите, чтобы файл был распознан, выполните последнее.

Подробности

Оказывается, с точки зрения gradle, существует огромная разница между наличием файлас именем appengine-web, объявив его XML-файлом и создав файл с именем appengine-web.xml.

Я добавил новый файл, в котором в качестве имени указано .xml, и исправил проблему.Я сталкивался раньше.

Как только я закончил, я столкнулся с идентичной проблемой с файлом для регистрации свойств (см. Поле system-properties в файле .xml в моем вопросе).

Я создал файл с именем logging и сделал его .properties, этот файл не был найден.Затем я создал файл с именем logging.properties, и файл был успешно найден.

Мораль истории, явно объявляйте тип файла в имени при работе с Google App Engine.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...