将GAE项目迁移到Java 8 - 在将运行时属性添加到appengine-web.xml

时间:2018-01-15 00:12:08

标签: java xml eclipse google-app-engine gwt

我将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 属性但没有sans属性时会发生此错误,它会使用 Java 7 进行部署,这会导致其他问题......

只有在包含 java8 属性时才会出现错误。 appengine-web.xsd 文件没有运行时属性 schema / def

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

1 个答案:

答案 0 :(得分:2)

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

  

不推荐使用Google Plugin for Eclipse,我们会将其删除   2018年1月。迁移到Eclipse的Cloud Tools 和/或GWT   Eclipse插件尽快避免中断。

this other page中,您可以找到有关如何执行App Engine Standard和GWT迁移的简单分步指南。

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

最后,您还可以查看migrating existing Java7 apps to Java8的官方文档,并确认您的应用程序中没有其他组件需要更改。

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