2012-09-17 32 views
1

当尝试遵循DataNucleus HBase tutorial时,出现异常(必须指定一个名为javax.jdo.PersistenceManagerFactoryClass的属性)。DataNucleus,HBase,JDO:“必须指定一个名为javax.jdo.PersistenceManagerFactoryClass的属性”

我的datanucleus.properties文件(下面)没有指定这样的属性,但也没有教程,也没有DataNucleus HBase sample

找到3.1样品之后被修改:

的src /主/资源/ datanucleus.properties

javax.jdo.option.ConnectionURL=hbase:hx1:60010 
javax.jdo.option.Mapping=hbase 

datanucleus.metadata.validate=false 
datanucleus.autoCreateSchema=true 
datanucleus.validateTables=false 
datanucleus.validateConstraints=false 

的src /主/爪哇/ HBase的-site.xml中

<?xml version="1.0"?> 

<configuration> 
    <property> 
    <name>hbase.zookeeper.quorum</name> 
    <value>hx1:2181</value> 
    <description>The host and port that the HBase master runs at. 
    </description> 
    </property> 
</configuration> 

src/main/com.business.model/package-hbase.xml

<?xml version="1.0"?> 
<!DOCTYPE orm PUBLIC 
    "-//Sun Microsystems, Inc.//DTD Java Data Objects Metadata 2.0//EN" 
    "http://java.sun.com/dtd/orm_2_0.dtd"> 
<orm> 
    <package name="com.business.model"> 
     <class name="Recommendation" table="Recommendations"> 
      <field name="id" column="ID"/> 
      <field name="documents" column="DOCUMENTS"/> 
     </class> 

     <class name="Document"> 
      <field name="id" column="ID"/> 
      <field name="title" column="TITLE"/> 
     </class> 
    </package> 
</orm> 

任何想法我失踪了?在与JPA合作几年之后,我是JDO的新手。

+0

你指的是过时的样品3.0,本教程的V3.1。我会解决这个问题。 – DataNucleus

+0

我已经复制了3.1样本,仍然得到相同的错误。有任何想法吗? –

+0

当我下载3.1示例时,取消注释“pom.xml”和“datanucleus.properties”中的HBase位并根据教程运行它,它可以正常工作(您可能需要更新hadoop-core,hbase,zookeeper的版本由于其依赖性问题而更新近)。如果在类路径中有多个JDO实现(并且通过教程README仅引入DataNucleus),则只需要“javax.jdo.PersistenceManagerFactoryClass”,否则它会从datanucleus-api-jdo.jar中的服务文件识别实现 – DataNucleus

回答

4

我从来没有尝试过一个HBase教程,但你必须定义javax.jdo.PersistenceManagerFactoryClass属性。我在persistence.xml文件(src/main/resources)中定义。属性定义:

<property name="javax.jdo.PersistenceManagerFactoryClass" 
      value="org.datanucleus.api.jdo.JDOPersistenceManagerFactory" /> 

你也可以在创建PMF时定义这个属性。

更多信息见于:http://db.apache.org/jdo/pmf.html

相关问题