2012-05-07 13 views
3

jBPMプロジェクトを永続化しようとしています。したがって、私はこれをtutorialと使いました。 最初に、必要なすべての追加のジャーをインポートしました(ウェブサイトに従って)。 私は永続的なストレージとしてmysqlを使いたいので、mysql-connector-java-5.1.20-bin.jarも追加しました。jBPM永続性:EntityManagerFactoryをビルドできません

persistence.datasource.name = JDBC/jBPMの-DS:その後、私はresources/META-INFにファイルjBPM.propertiesを追加

KnowledgeBase kbase = readKnowledgeBase(name); 
StatefulKnowledgeSession ksession = null; 
JBPMHelper.startH2Server(); 
JBPMHelper.setupDataSource(); 
if(ProcessManager.sessionId == -1){ 
    ksession = JBPMHelper.newStatefulKnowledgeSession(kbase); 
    ProcessManager.sessionId = ksession.getId(); 
} 
else { 
ksession = JBPMHelper.loadStatefulKnowledgeSession(
    kbase, 
    ProcessManager.sessionId); 
} 

はその後、私は私のプロジェクトに "ステートフル" のコードを追加しました

persistence.datasource.user =試験

persistence.datasource.pas剣=テスト

persistence.datasource.url = JDBCます。mysql:// localhostを:3306/helpme

persistence.datasource.driverClassName =はcom.mysql.jdbc.Driver

persistence.enabled =真

persistence.persistenceunit.name = org.jbpm.persistence.jpa

persistence.persistenceunit.dialect = org.hibernate.dialect.MySQLDialect

私は今(ksession = JBPMHelper.newStatefulKnowledgeSession(kbase);上)以下の例外が常にあるプロジェクトを実行する場合:

javax.persistence.PersistenceException:[PersistenceUnit:org.jbpm.persistence.jpa]のEntityManagerFactory

を構築することができません。

はによって引き起こさ:org.hibernate.HibernateException:javax.naming.NameNotFoundExceptionが:によって発生するデータソース

を見つけることができませんでした名前のJDBCは、このコンテキストでバインドされていない

答えて

1

私の問題の解決策が見つかりました。通常JBPMHelperjarから直接のjBPMをロードします。

public static Properties getProperties() { 
    Properties properties = new Properties(); 
    try { 
     properties 
      .load(JBPMHelper.class.getResourceAsStream("/jBPM.properties")); 
    } catch (Throwable t) { 
    // do nothing, use defaults 
    } 

    return properties; 
} 

私はローディング機構を交換し、今ではjBPM.properties正しく読み込まれます。

public static Properties getProperties() { 
    Properties properties = new Properties(); 
    try { 
     InputStream input 
      = new FileInputStream("./resources/META-INF/jBPM.properties"); 
     properties.load(input); 
     System.out.println("RPOP"+properties.toString()); 
    } catch (Throwable t) { 
    // do nothing, use defaults 
    } 

    return properties; 
} 

(私の答えはBartoszKPから適応 - 感謝)

関連する問題