我正在努力部署到Google App Engine标准环境。部署之前,我想在本地进行测试,因此我正在运行gradlew appengineRun
。
一切正常,直到我遇到此错误:“ com.google.cloud.tools.appengine.AppEngineException:java.nio.file.NoSuchFileException:C:\ Users {user} \ 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文件才能继续。如果有人知道发生了什么,或有任何想法向正确的方向指点,我们将不胜感激。
答案 0 :(得分:0)
TLDR:
具有名称和您选择的类型的文件与格式为{file-name}。{type}的文件名之间是有区别的。如果您希望文件被识别,请执行后者。
详细信息
结果,在gradle看来,拥有名为appengine-web的文件和声明它为.xml文件与制作名为appengine-web.xml的文件之间存在巨大差异。
我添加了一个新文件,该文件以.xml作为其名称的一部分,并解决了我之前遇到的问题。
完成后,我遇到了一个用于记录属性的文件的相同问题(请参阅我的问题的.xml文件中的system-properties字段)。
我创建了一个名为logging的文件,并将其设置为.properties文件,但找不到该文件。然后,我制作了一个名为logging.properties的文件,并成功找到了该文件。
故事的寓意,在处理Google App Engine时,在名称中明确声明文件类型。