3

我最近让 objectify 与应用程序引擎一起工作,但是我在多次注册一个 objectify 类时遇到了麻烦。在Eclipse中开发时,每次刷新本地主机时都会重新编译并再次运行,注册学生的脚本会运行多次,并且仅在一次刷新后就会使程序崩溃。

<%
//In my main.jsp file, which is the main interactive html page
ObjectifyService.register(Object.class);
%>

如何确保此脚本只运行一次?有没有办法检查一个类是否注册了objectify?我按照另一个stackoverflow线程的建议执行以下操作:

public class Object {
    ...
    static {
        ObjectifyService.register(Object.class);
    }
    ...
}

这给了我一个不同的错误。我该如何解决这个问题?

4

2 回答 2

1

通过查看像这样的可靠示例:

JSP 中的对象化

您可以找到类似的注册课程的尝试,但是...阅读示例中的评论:

// 小心这一行!
这是一个示例,但在现实世界的项目中,建议您在应用程序的一开始就注册实体//寻找更好的地方。

所以...您可能有一个 java 类,在其中实现了几种方法,例如:get/put/delete 等...并且在该 java 类中您应该放置代码来注册该类

    static {
        ObjectifyService.register(Object.class);
    }

或者,寻找在应用程序启动时被调用的其他地方

于 2012-01-27T06:13:09.767 回答
1

把它放在你的ServletContextListener上,特别是放在 contextInitialized() 钩子上。这将确保 Objectify 注册代码仅在服务器预热时执行一次。

于 2012-01-27T10:03:29.803 回答