将 GAE 项目迁移到 Java 8 - 将运行时属性添加到 appengine-web.xml 后出现 XML 验证错



我正在将 GAE/GWT 项目迁移到 Java 8,并在部署时收到以下错误: 验证 XML 时出错

<?xml version="1.0" encoding="utf-8"?>
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
<runtime>java8</runtime>
<application>XXXAppNameXXXX</application>
<version>2</version>
<!-- Allows App Engine to send multiple requests to one instance in parallel: -->
<threadsafe>true</threadsafe>
<!-- Configure serving/caching of GWT files -->
<static-files>
<include path="**" />
<!-- The following line requires App Engine 1.3.2 SDK -->
<include path="**.nocache.*" expiration="0s" />
<include path="**.cache.*" expiration="365d" />
<exclude path="**.gwt.rpc" />
</static-files>
<!-- Configure java.util.logging -->
<system-properties>
<property name="java.util.logging.config.file" value="WEB INF/logging.properties" />
</system-properties>
</appengine-web-app>

/XXXX/

XXXX/.p2/pool/plugins/com.google.appengine.eclipse.sdkbundle_1.9.34/appengine-java-sdk-1.9.34/docs/appengine-web.xsd

当我删除java8属性但没有属性时,不会发生此错误,它使用Java 7部署,这会导致其他问题......

仅当我包含java8属性时才会发生错误。appengine-web.xsd文件没有运行时属性schema/def

缺少的属性是错误的根本原因吗? 我应该使用不同的捆绑包吗? 我该如何解决这个问题?

首先,我建议您从 Google Plugin bundle for Eclipse 迁移到 Cloud Tools for Eclipse,因为如文档中所述,插件捆绑包已于 2018 年 1 月弃用:

Eclipse 的 Google 插件已弃用,将在 2018 年 1 月。迁移到 Cloud Tools for Eclipse和/或 GWT Eclipse 插件尽快避免中断。

在另一个页面中,您可以找到有关如何执行 App Engine 标准版和 GWT 迁移的简单分步指南。

另一方面,我想知道你为什么使用*.xsd文件来定义appengine-web.xml

最后,您还可以查看将现有 Java7 应用程序迁移到 Java8 的官方文档,并验证应用程序中没有其他组件。

简而言之,您应该尝试迁移到云工具,然后提供有关错误的更多信息(请分享完整的错误报告),如果它不断出现。

最新更新