没有持久性提供程序可用于“testDB”异常发生在javax.persistence.Persistence.createEntityManagerFactory(persistenceUnitName)

时间:2013-04-29 08:54:10

标签: java jpa openjpa juddi

让我简要介绍一下我想要实现的目标。我想覆盖在apache JUDDI中使用的方法EntityManager.persist(),以满足我的一个要求。

因此我想到用一个包装类覆盖默认的openjpa持久性提供者impl类,它将直接使用相应的org.apache.openjpa.persistence.PersistenceProviderImpl方法。(这与MyPersistenceProvider扩展PersistenceProviderImpl非常相似)。我在persistence.xml中添加了自定义持久性提供程序。在启动时,我发现日志说

信息:找到持久性提供程序“org.test.uddi.persistance.CustomPersistenceProviderImpl”。不会使用OpenJPA。

这意味着我的班级被选为提供者。但是$ subject会发生。知道为什么吗? 以下是完整的堆栈跟踪。

[2013-04-29 13:32:22,470] INFO {org.wso2.carbon.core.deployment.DeploymentInterceptor} - 部署Axis2服务:UDDIReplicationService {super-tenant} 信息:找到持久性提供程序“org.test.uddi.persistance.CustomPersistenceProviderImpl”。 OpenJPA将不会被使用。 [2013-04-29 13:32:22,595] ERROR {org.apache.juddi.config.PersistenceManager} - entityManagerFactory创建失败 javax.persistence.PersistenceException:尝试以下发现的实现后,没有可用于“juddiDatabase”的持久性提供程序:org.apache.openjpa.osgi.OSGiPersistenceProviderImpl     在javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:180)     在javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:70)     at org.apache.juddi.config.PersistenceManager.initializeEntityManagerFactory(PersistenceManager.java:56)     at org.apache.juddi.config.AppConfig.loadConfiguration(AppConfig.java:94)     在org.apache.juddi.config.AppConfig。(AppConfig.java:62)     at org.apache.juddi.config.AppConfig.getInstance(AppConfig.java:183)     在org.apache.juddi.config.AppConfig.getConfiguration(AppConfig.java:205)     在org.apache.juddi.Registry.start(Registry.java:55)

1 个答案:

答案 0 :(得分:0)

目前,jUDDI仅支持OpenJPA和Hibernate,并且是这样分发的。您最好的选择是联系jUDDI团队并在https://issues.apache.org/jira/browse/JUDDI

打开一张票