当前位置: 首页 > 知识库问答 >
问题:

将jBPM 5.4集成到J2EE web应用程序中时出现persistence.xml错误

琴英华
2023-03-14

我在使用Eclipse(Kepler)时遇到了“将jBPM集成到web应用程序”的问题。作为测试,我只是尝试将jBPM完整安装程序的评估示例中的代码复制到Maven JavaEE6原型生成的模板代码中。我在下面注意了我的步骤,这样问题就可以很容易地重现。

<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”项目):Archetype=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运行时。

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:Persistence unitName未指定,在应用程序部署“MyServlet.WAR”中有两个Persistence unit定义。将应用程序更改为只有一个持久性单元定义,或者为对持久性单元的每个引用指定unitName。

我已经确认在部署的myservlet文件夹中的任何地方都有一个persistence.xml文件(它位于jboss-as-7.1.1.final\standalone\deployments\myservlet.war\web-inf\classes\meta-inf中)。

有人能解释一下这个错误意味着什么,如何消除它吗?

共有1个答案

王飞虎
2023-03-14

我的猜测是,在所有这些configured.xml中,您犯了一些不太清楚的错误。我知道这有多痛苦。我编写了一个关于如何使用JBoss为JBPM配置持久性的小教程,如下所示。我建议您按照它一步一步来重新配置您的项目。

希望它能解决你的问题!

 类似资料:
  • 我已经将我的android应用程序与Paypal集成在一起,并用Paypal沙箱凭据对其进行了测试。Ti测试与其他凭据,我创建了另一个帐户,当我测试这个,我得到错误说.... 请给我宝贵的建议和帮助我

  • 我运行我的应用程序,其工作正常,但当我试图将其与firebase集成时,它显示了一个错误 失败:生成失败,出现异常。 > 出了什么问题:任务执行失败:app: mergeDexDebug。 <区块报价> 无法解析配置': app: dedegRuntimeClasspath'的所有文件。转换工件'play-services-base.aar(com.google.android.gms: play

  • 问题内容: 我有一个使用Spring Batch和Spring MVC的应用程序。我可以将Spring Batch Admin单独部署,并与我的应用程序使用的数据库一起使用,尽管我想将其集成到我自己的应用程序中,还可能会修改其中一些视图。 有没有简单的方法可以做到这一点,还是我必须将其分叉然后从那里去? 问题答案: 根据这个线程显然有一个简单的方法; 在以下位置为Batch Admin定义Disp

  • 我有个跟班问题。在构建我的应用程序时遇到这样一个错误,我找不到是怎么回事。 这是我的分级:

  • 当我连续发布数据时,我会在C#应用程序上得到发布超时错误,一旦我重新启动应用程序,它会工作几个小时。[注意:由于php需要时间完成任务,所以新的请求都在等待中,它创建队列,等待时间超过2分钟,im出现超时错误]。 我们的两台服务器都使用了最大50%的CPU和RAM使用量 我检查了两个C#代码和PHP代码都工作良好,没有任何问题或bug 提前致谢哥们儿:)

  • 我试图在Heroku上推动我的Spring Boot应用程序,我得到了一个错误:未能用Maven构建应用程序,即未能执行目标org.apache.Maven.plugins:maven-compiler-plugin:3.8.1:compile(default-compile)on project BlogApplication:致命错误编译:无效的目标版本:11。 日志: pom.xml