Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven 将jBPM 5.4集成到J2EE web应用程序时获取persistence.xml错误_Maven_Jboss_Jbpm - Fatal编程技术网

Maven 将jBPM 5.4集成到J2EE web应用程序时获取persistence.xml错误

Maven 将jBPM 5.4集成到J2EE web应用程序时获取persistence.xml错误,maven,jboss,jbpm,Maven,Jboss,Jbpm,在使用Eclipse(开普勒)时,我很难将“jBPM集成到web应用程序中”。作为测试,我只是尝试将jBPM完整安装程序的评估样本中的代码复制到Maven JavaEE6原型生成的模板代码中。我已经记下了下面的步骤,以便很容易地重现问题 1) 添加到JBoss standalone.xml: <datasource jndi-name="java:jboss/jdbc/jbpm-ds" pool-name="jBPMDS" enabled="true" use-java-context="

在使用Eclipse(开普勒)时,我很难将“jBPM集成到web应用程序中”。作为测试,我只是尝试将jBPM完整安装程序的评估样本中的代码复制到Maven JavaEE6原型生成的模板代码中。我已经记下了下面的步骤,以便很容易地重现问题

1) 添加到JBoss standalone.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>
8) 在同一模块中,在register()中添加以下内容,这些内容也来自评估示例代码:

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;
 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();
}
试试看{
//加载知识库
KnowledgeBuilder kbuilder=KnowledgeBuilderFactory.newKnowledgeBuilder();
添加(ResourceFactory.newClassPathResource(“Evaluation.bpmn”)、ResourceType.BPMN2);
KnowledgeBase kbase=kbuilder.newKnowledgeBase();
StatefulKnowledgeSession ksession=kbase.newStatefulKnowledgeSession();
HornetQHTWorkItemHandler humanTaskHandler=新的HornetQHTWorkItemHandler(ksession);
humanTaskHandler.setIpAddress(“127.0.0.1”);
humanTaskHandler.setPort(5153);
ksession.getWorkItemManager().registerWorkItemHandler(“人工任务”,humanTaskHandler);
KnowledgeRuntimeLogger logger=KnowledgeRuntimeLoggerFactory.newThreadedFileLogger(ksession,“test”,1000);
//启动一个新的流程实例
Map params=新的HashMap();
参数put(“雇员”、“克里斯夫”);
参数put(“原因”、“年度绩效评估”);
ksession.startProcess(“com.sample.evaluation”,params);
System.out.println(“进程已启动…”);
logger.close();
}捕获(可丢弃的t){
t、 printStackTrace();
}
在与六场jBPM战争一起部署时,我们会遇到以下错误: ... 原因: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中)


有人能解释一下这个错误是什么意思以及如何消除它吗?

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

希望它能解决你的问题

 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();
}