Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.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
Java 在何处声明具有多个服务的JDO Singleton PersistenceManagerFactory_Java_Google App Engine_Jdo - Fatal编程技术网

Java 在何处声明具有多个服务的JDO Singleton PersistenceManagerFactory

Java 在何处声明具有多个服务的JDO Singleton PersistenceManagerFactory,java,google-app-engine,jdo,Java,Google App Engine,Jdo,我正在使用GWT,有4个服务实现需要PersistenceManagerFactory。我遵循Google关于创建singleton类的建议,但是我不确定这个类应该在服务器端代码中实例化和引用到哪里 这个班看起来像这样 import javax.jdo.JDOHelper; import javax.jdo.PersistenceManagerFactory; public final class PMF { private static final PersistenceManage

我正在使用GWT,有4个服务实现需要PersistenceManagerFactory。我遵循Google关于创建singleton类的建议,但是我不确定这个类应该在服务器端代码中实例化和引用到哪里

这个班看起来像这样

import javax.jdo.JDOHelper;
import javax.jdo.PersistenceManagerFactory;

public final class PMF {
    private static final PersistenceManagerFactory pmfInstance =
        JDOHelper.getPersistenceManagerFactory("transactions-optional");

    private PMF() {}

    public static PersistenceManagerFactory get() {
        return pmfInstance;
    }
}
但是在每个服务实现中执行类似的操作似乎最终会根据错误消息“I get”创建一个singleton的唯一副本应用程序代码试图创建一个名为transactions的PersistenceManagerFactory(可选),但具有此名称的副本已经存在

@Override
 public void addCategory(Category category) {
  PersistenceManager pm = PMF.get().getPersistenceManager();
  try {
        pm.makePersistent(category);
  } finally {
       pm.close();
     }
 }

因此,基本上第一个调用addCategory的ServiceImpl是正常的,其他所有调用都会失败,出现上述错误。我在这里遗漏了一些重要的东西,我认为singleton类的全部要点是创建一个静态PersistenceManagerFactory。非常感谢您对我所缺少的任何见解。

PMF类应该是顶级类,而不是内部类


通常它的site.server.PMF.

PMF类应该是顶级类,而不是内部类


通常是它的site.server.PMF.

肯定还有别的事情发生。你的PMF类看起来正确。你有多份PMF类的副本吗?这是一个内部类吗?肯定还有别的事情发生。你的PMF类看起来正确。你有多份PMF类的副本吗?“这是一门内部课程吗?”扎克,我很好奇。这就是你的问题所在,还是这只是帮你弄明白了一些其他的事情?总的来说,我不知道单例是如何使用的,它们是如何被实例化的等等。你的帖子帮助我理解了单例生态系统。@Zach我很好奇。这就是你的问题所在,还是这只是帮你弄明白了其他一些事情?总的来说,我对单例是如何使用的,它们是如何实例化的等等感到困惑。你的帖子帮助我理解了单例生态系统。