【问题标题】:Getting persistence.xml error while integrating jBPM 5.4 into a J2EE web app将 jBPM 5.4 集成到 J2EE Web 应用程序时出现 persistence.xml 错误
【发布时间】:2013-10-07 23:00:46
【问题描述】:

在使用 Eclipse (Kepler) 时,我一直无法将“jBPM 集成到 Web 应用程序中”。作为测试,我只是尝试将 jBPM 完整安装程序的评估示例中的代码复制到由 Maven JavaEE6 Archetype 生成的模板代码中。我已经在下面记录了我的步骤,以便可以轻松地重现问题。

1) 添加到JBossstandalone.xml:

<datasource jndi-name="java:jboss/jdbc/jbpm-ds" pool-name="jBPMDS" enabled="true" use-java-context="true">
    <connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1</connection-url>
    <driver>h2</driver>
    <security>
        <user-name>sa</user-name>
        <password>sa</password>
    </security>
</datasource>

2) JBoss Central > Maven Project > 过滤“javaee6”(创建“myservlet”项目): 原型 = jboss-javaee6-webapp 接受所有默认值

3) 设置 src\main\resources\META-INF\persistence.xml 包含:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0"
   xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="
        http://java.sun.com/xml/ns/persistence
        http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
   <persistence-unit name="primary">
      <!-- If you are running in a production environment, add a managed 
         data source, the example data source is just for proofs of concept! -->
      <jta-data-source>java:jboss/datasources/ExampleDS</jta-data-source>
      <properties>
         <!-- Properties for Hibernate -->
         <property name="hibernate.hbm2ddl.auto" value="create-drop" />
         <property name="hibernate.show_sql" value="false" />
      </properties>
   </persistence-unit>
</persistence>

4) 通过指向 jBPM 完整安装程序中的 \runtime 文件夹来添加 jBPM 运行时。

5) 选择jBPM Perspective,右键单击myservlet Project > Convert to jBPM Project。

6) 将 Java 构建路径条目 > jBPM 库添加到部署程序集。

7) 在 src\main\java\com\mycompany\mywebapp\controller 添加到(任意选择的)MemberRegistration.java(作为项目的一部分自动创建)中来自评估示例代码的以下内容:

import java.util.HashMap;
import java.util.Map;
import org.drools.KnowledgeBase;
import org.drools.builder.KnowledgeBuilder;
import org.drools.builder.KnowledgeBuilderFactory;
import org.drools.builder.ResourceType;
import org.drools.io.ResourceFactory;
import org.drools.logger.KnowledgeRuntimeLogger;
import org.drools.logger.KnowledgeRuntimeLoggerFactory;
import org.drools.runtime.StatefulKnowledgeSession;
import org.jbpm.process.workitem.wsht.HornetQHTWorkItemHandler;

8) 在同一模块中,在 register() 中添加同样来自评估示例代码的以下内容:

 try {
    // load up the knowledge base
    KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
    kbuilder.add(ResourceFactory.newClassPathResource("Evaluation.bpmn"), ResourceType.BPMN2);
    KnowledgeBase kbase = kbuilder.newKnowledgeBase();
    StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
    HornetQHTWorkItemHandler humanTaskHandler = new HornetQHTWorkItemHandler(ksession);
    humanTaskHandler.setIpAddress("127.0.0.1");
    humanTaskHandler.setPort(5153);
    ksession.getWorkItemManager().registerWorkItemHandler("Human Task", humanTaskHandler);
    KnowledgeRuntimeLogger logger = KnowledgeRuntimeLoggerFactory.newThreadedFileLogger(ksession, "test", 1000);
    // start a new process instance
    Map<String, Object> params = new HashMap<String, Object>();
    params.put("employee", "krisv");
    params.put("reason", "Yearly performance evaluation");
    ksession.startProcess("com.sample.evaluation", params);
    System.out.println("Process started ...");
    logger.close();
    } catch (Throwable t) {
    t.printStackTrace();
}

在与六个 jBPM WAR 一起部署时,我们会收到以下错误: ... 原因:java.lang.IllegalArgumentException:JBAS011470:未指定持久性单元名称,应用程序部署“myservlet.war”中有 2 个持久性单元定义。要么将应用程序更改为只有一个持久性单元定义,要么为每个对持久性单元的引用指定 unitName。

我已经确认在部署的 myservlet 文件夹中的任何位置都有一个 persistence.xml 文件(它位于 jboss-as-7.1.1.Final\standalone\deployments\myservlet.war\WEB-INF\classes\META -INF)。

谁能解释这个错误的含义以及如何消除它?

【问题讨论】:

    标签: maven jboss jbpm


    【解决方案1】:

    我的猜测是,在所有配置的 .xml 中的某个地方,您犯了一些不太清楚的错误。我知道那是多么痛苦。我写了一篇关于如何使用 JBoss AS here 为 JBPM 配置持久性的小教程。我建议你一步一步地重新配置你的项目。

    希望它能解决你的问题!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-18
      • 2012-09-03
      • 2015-04-06
      • 2011-05-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多