Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google app engine 谷歌应用程序引擎&x2B;Objectify:注册对象一次?_Google App Engine_Jsp_Objectify - Fatal编程技术网

Google app engine 谷歌应用程序引擎&x2B;Objectify:注册对象一次?

Google app engine 谷歌应用程序引擎&x2B;Objectify:注册对象一次?,google-app-engine,jsp,objectify,Google App Engine,Jsp,Objectify,我最近使用AppEngine使用objectify,但我在多次为objectify注册类时遇到了问题。在Eclipse中开发时,每次刷新localhost时都会重新编译并再次运行,而注册学生的脚本会运行多次,只需刷新一次,程序就会崩溃 <% //In my main.jsp file, which is the main interactive html page ObjectifyService.register(Object.class); %> 这给了我一个不同的错误。我如何

我最近使用AppEngine使用objectify,但我在多次为objectify注册类时遇到了问题。在Eclipse中开发时,每次刷新localhost时都会重新编译并再次运行,而注册学生的脚本会运行多次,只需刷新一次,程序就会崩溃

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

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

通过以下可靠的例子:

您可以找到注册该类的类似尝试,但是。。。阅读示例中的注释:

//小心这条线!这是一个例子,但在现实世界的项目中,您应该看起来更好
//建议在申请开始时注册实体

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

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

或者,在应用程序启动时查找其他被调用的位置

将其放在您的,特别是contextInitialized()挂钩上。这将确保Objectify寄存器代码仅在服务器预热时执行一次。

“崩溃”?“另一个错误”?具体点!包括堆栈跟踪!这个问题非常明确。我说过要在实现CRUD操作的类中添加静态块。。。因此,如果您将静态块放在它里面,(并且您必须在使用CRUD操作之前创建它的实例),它应该是好的,我没有说将注册的静态块放在“Object”类里面,我很抱歉有点误导。我指的是一般情况,而不是你的正确建议。您所描述的,将注册放在DAO中,是我链接到的上面的一段:
    static {
        ObjectifyService.register(Object.class);
    }