【问题标题】:Play Framework With Google appengine Model updatePlay Framework With Google appengine 模型更新
【发布时间】:2012-11-18 15:39:32
【问题描述】:

我有一个部署在 Google Appengine 上的 Play 应用程序。我将 Play 1.2.4 与模块一起使用: 克鲁兹纳 2.0.1 gae-1.6 安全的 锡耶纳 2.0.5

我的问题如下: 我已经部署了具有多个模型的应用程序,并且该应用程序运行良好。过了一段时间,我决定改进需要在模型类中引入新变量的应用程序。如果我这样做,我的本地主机工作得很好,但是当我将新版本上传到 GAE 时,当我尝试访问使用旧版本创建的模型对象时收到错误,因为它无法关联新变量:

play.exceptions.JavaExecutionException: siena.SienaException: java.lang.IllegalArgumentException: Can not set boolean field models.Dataset.reportEnabled to java.lang.Integer
at play.mvc.ActionInvoker.invoke(ActionInvoker.java:229)
at play.server.ServletWrapper$ServletInvocation.execute(ServletWrapper.java:540)
at play.Invoker$Invocation.run(Invoker.java:265)
at play.server.ServletWrapper$ServletInvocation.run(ServletWrapper.java:531)
at play.Invoker.invokeInThread(Invoker.java:67)
at play.server.ServletWrapper.service(ServletWrapper.java:130)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

在这种情况下,布尔型 reportEnabled 变量是新引入 Dataset 类的。 我的问题是如何通过保留旧对象来使应用程序工作(可能只是为新变量提供默认值)。

非常感谢您的帮助。

【问题讨论】:

    标签: google-app-engine playframework playframework-1.x siena


    【解决方案1】:

    通过将布尔值更改为布尔值来解决问题。它并没有改变之前条目中数据库的结构,但至少我不再出错了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-30
      • 1970-01-01
      相关资源
      最近更新 更多