将 XML 数据导入 Google App Engine
2010-10-22 17:18:53 来源:WEB开发网在这个方法中,您提取在表单的文本区域中输入的文本,然后将文本发送到 EmployeeHandler。当文本被解析且 Employee 对象被创建后,将用户重定向回包含一个空白表单的相同页面。
要解析文本,对 EmployeeHandler 的构造函数进行最后一次更改,以接受来自文本区域的文本,而不是解析来自一个 File 对象的文本。如 清单 10 所示,您将文本添加到一个 StringReader 对象,然后解析这个新对象。
清单 10. 使用 String 参数的 EmployeeHandler 构造函数
public EmployeeHandler(String employeeXML) {
SAXParserFactory factory = SAXParserFactory.newInstance();
try {
pm = XMLImportPersistenceManagerFactory.get().getPersistenceManager();
SAXParser saxParser = factory.newSAXParser();
saxParser.parse(new InputSource (new StringReader(employeeXML)), this);
pm.makePersistentAll(employees);
} catch (Throwable t) {
t.printStackTrace();
}
finally {
pm.close();
}
}
现在,您可以将任意 employee 文件添加到这个 web 应用程序,而不必首先上传到 appspot.com。
使用 web 服务来上传 XML 数据
这个解决方案受到两个限制:一是文本区域中可以输入的最大字符数;二是 Google 对发送到 GAE 的请求实施的 30 秒超时。如果文档没有被解析且对象在 30 秒内进行持久化,则服务器将抛出一个异常且对象将不会创建。
更多精彩
赞助商链接