如果您遵循某些重要步骤,Tapestry应用程序应该可以在GoogleAppEngine(GAE)上正常运行。
所需配置设置
示例配置
应用程序的模块类(通常是AppModule.java)可以在设置其他符号的位置设置这些符号(在名为contributeApplicationDefaults的方法中,或者在用@ApplicationDefaults和@Contribute注释的方法中),如下所示。
@应用程序默认值@Contribute(SymbolProvider.class)公共静态void configureMyApp(MappedConfiguration(映射配置<字符串,字符串>配置) {configuration.add(SymbolConstants.PRODUCTION_MODE,“true”);configuration.add(SymbolConstants.RESTRICTIVE_ENVIRONMENT,“true”);configuration.add(IOCSymbols.THREAD_POOL_ENABLED,“false”);。。。 }
注意:通常,只有在生产和QA/测试环境中才需要将生产模式设置为true,但您可以使用JVM系统属性覆盖该符号(-Dtapestry.production-mode=错误
)在这些环境中。
可序列化对象
- 确保存储在servlet会话中的所有对象(尤其是那些用@SessionState和@session Attribute注释的对象)实际上都是可序列化类型。否则,您可能会看到奇怪的行为,其中对象似乎会丢失其会话值。
文件上传
- 如果使用Tapestry-upload模块(或任何文件上传机制),则需要确保将其配置为不在文件系统中存储临时上传的文件。请参见上传文件–尤其是
上传.存储-阈值
符号,应设置为较大的值。
其他考虑因素
除了上述设置之外,Tapestry应该不会妨碍您在GoogleAppEngine下运行应用程序。然而,您仍然需要遵守GAE的所有常规约束(与任何应用程序、Tapestry或其他应用程序一样)。请仔细阅读谷歌的文档,了解创建与GAE兼容的应用程序的一般指导原则。