当尝试遵循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的新手。
你指的是过时的样品3.0,本教程的V3.1。我会解决这个问题。 – DataNucleus
我已经复制了3.1样本,仍然得到相同的错误。有任何想法吗? –
当我下载3.1示例时,取消注释“pom.xml”和“datanucleus.properties”中的HBase位并根据教程运行它,它可以正常工作(您可能需要更新hadoop-core,hbase,zookeeper的版本由于其依赖性问题而更新近)。如果在类路径中有多个JDO实现(并且通过教程README仅引入DataNucleus),则只需要“javax.jdo.PersistenceManagerFactoryClass”,否则它会从datanucleus-api-jdo.jar中的服务文件识别实现 – DataNucleus