Возникла проблема при запуске образца jbmp в eclipse - PullRequest
0 голосов
/ 02 апреля 2019

Может кто-нибудь помочь мне решить мою проблему? Когда я попытался запустить образец jbpm в затмении. Это код:

public class ProcessMain {

public static void main(String[] args) {
    KieServices ks = KieServices.Factory.get();
    KieContainer kContainer = ks.getKieClasspathContainer();
    KieBase kbase = kContainer.getKieBase("kbase");

    RuntimeManager manager = createRuntimeManager(kbase);
    RuntimeEngine engine = manager.getRuntimeEngine(null);
    KieSession ksession = engine.getKieSession();
    ksession.startProcess("com.sample.bpmn.hello");

    manager.disposeRuntimeEngine(engine);
    System.exit(0);
}

private static RuntimeManager createRuntimeManager(KieBase kbase) {
    JBPMHelper.startH2Server();
    JBPMHelper.setupDataSource();
    EntityManagerFactory emf = Persistence.createEntityManagerFactory("org.jbpm.persistence.jpa");
    RuntimeEnvironmentBuilder builder = RuntimeEnvironmentBuilder.Factory.get()
        .newDefaultBuilder().entityManagerFactory(emf)
        .knowledgeBase(kbase);
    return RuntimeManagerFactory.Factory.get()
        .newSingletonRuntimeManager(builder.get(), "com.sample:example:1.0");
}

}

Тогда это ошибка в окне консоли:

Exception in thread "main" java.lang.IllegalArgumentException: Driver class name cannot be empty.
at org.kie.test.util.db.internal.DatabaseProvider.fromDriverClassName(DatabaseProvider.java:32)
at org.kie.test.util.db.DataSourceFactory.setupPoolingDataSource(DataSourceFactory.java:57)
at org.kie.test.util.db.DataSourceFactory.setupPoolingDataSource(DataSourceFactory.java:42)
at org.jbpm.test.JBPMHelper.setupDataSource(JBPMHelper.java:103)
at com.sample.ProcessMain.createRuntimeManager(ProcessMain.java:34)
at com.sample.ProcessMain.main(ProcessMain.java:23)

1 Ответ

0 голосов
/ 22 мая 2019
  1. jBPMHelper больше не устанавливает значения по умолчанию для H2, - https://github.com/kiegroup/drools/commit/34293e9675ae4f36f2a3a9e633305bbcc8260d19
  2. Нам нужно использовать - PersistenceUtil.setupPoolingDataSource (); вместо этого JBPMHelper.setupDataSource ();
  3. Также включите файл datasource.properties в папку ресурсов.

datasource.properties -> https://github.com/kiegroup/jbpm/blob/master/jbpm-examples/src/main/resources/datasource.properties

...