2012-09-17 2 views
1

DataNucleus HBase tutorial을 따라갈 때 예외 ("javax.jdo.PersistenceManagerFactoryClass라는 속성을 지정해야합니다")가 발생합니다.DataNucleus, HBase, JDO : "javax.jdo.PersistenceManagerFactoryClass라는 속성을 지정해야합니다"

내 datanucleus.properties 파일 (아래)은 이러한 속성을 지정하지는 않지만 자습서를 지정하지 않으며 DataNucleus HBase sample도 아닙니다.

3.1 샘플 찾은 후 편집 :

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의

SRC/메인/자원/datanucleus.properties을

<?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> 

내가 누락 된 아이디어가 있습니까? Joe는 몇 년 동안 JPA에서 일한 경험이 있습니다.

+0

당신이 튜토리얼의 사용되지 않는 샘플의 버전 3.0 및 3.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 속성을 정의해야합니다. Mine은 persistence.xml 파일 (src/main/resources)에 정의되어 있습니다. 속성 정의 :

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

PMF를 만들 때이 속성을 정의 할 수도 있습니다. http://db.apache.org/jdo/pmf.html

관련 문제