由于是初学jdpm,出现的错误总摸不着头脑,我已经使用jdpm创建了数据库表,可是发布流程时出现以下错误:
16:09:39,578 [main] INFO  JbpmConfiguration : using jbpm configuration resource 'jbpm.cfg.xml'
16:09:39,578 [main] DEBUG JbpmConfiguration : loading defaults in jbpm configuration
16:09:39,781 [main] DEBUG ObjectFactoryImpl : adding object info 'default.jbpm.context'
16:09:39,781 [main] DEBUG ObjectFactoryImpl : adding object info 'resource.hibernate.cfg.xml'
16:09:39,781 [main] DEBUG ObjectFactoryImpl : adding object info 'resource.business.calendar'
16:09:39,781 [main] DEBUG ObjectFactoryImpl : adding object info 'resource.default.modules'
16:09:39,781 [main] DEBUG ObjectFactoryImpl : adding object info 'resource.converter'
16:09:39,781 [main] DEBUG ObjectFactoryImpl : adding object info 'resource.action.types'
16:09:39,781 [main] DEBUG ObjectFactoryImpl : adding object info 'resource.node.types'
16:09:39,781 [main] DEBUG ObjectFactoryImpl : adding object info 'resource.parsers'
16:09:39,781 [main] DEBUG ObjectFactoryImpl : adding object info 'resource.varmapping'
16:09:39,781 [main] DEBUG ObjectFactoryImpl : adding object info 'jbpm.msg.wait.timout'
16:09:39,781 [main] DEBUG ObjectFactoryImpl : adding object info 'jbpm.byte.block.size'
16:09:39,781 [main] DEBUG ObjectFactoryImpl : adding object info 'mail.smtp.host'
16:09:39,781 [main] DEBUG ObjectFactoryImpl : adding object info 'jbpm.task.instance.factory'
16:09:39,781 [main] DEBUG ObjectFactoryImpl : adding object info 'jbpm.variable.resolver'
16:09:39,781 [main] DEBUG ObjectFactoryImpl : adding object info 'jbpm.mail.address.resolver'
16:09:39,843 [main] ERROR JpdlXmlReader : couldn't parse process definition
org.dom4j.DocumentException: null Nested exception: null
at org.dom4j.io.SAXReader.read(SAXReader.java:484)
at org.jbpm.jpdl.xml.JpdlParser.parse(JpdlParser.java:57)
at org.jbpm.jpdl.xml.JpdlXmlReader.readProcessDefinition(JpdlXmlReader.java:138)
at org.jbpm.graph.def.ProcessDefinition.parseXmlInputStream(ProcessDefinition.java:172)
at org.jbpm.graph.def.ProcessDefinition.parseXmlResource(ProcessDefinition.java:153)
at org.myy.JbpmTest02_Deploy.deploy(JbpmTest02_Deploy.java:13)
at org.myy.JbpmTest02_Deploy.main(JbpmTest02_Deploy.java:24)
Nested exception: 
java.net.MalformedURLException
at java.net.URL.<init>(Unknown Source)
at java.net.URL.<init>(Unknown Source)
at java.net.URL.<init>(Unknown Source)
at org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(Unknown Source)
at org.apache.xerces.impl.XMLVersionDetector.determineDocVersion(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.dom4j.io.SAXReader.read(SAXReader.java:465)
at org.jbpm.jpdl.xml.JpdlParser.parse(JpdlParser.java:57)
at org.jbpm.jpdl.xml.JpdlXmlReader.readProcessDefinition(JpdlXmlReader.java:138)
at org.jbpm.graph.def.ProcessDefinition.parseXmlInputStream(ProcessDefinition.java:172)
at org.jbpm.graph.def.ProcessDefinition.parseXmlResource(ProcessDefinition.java:153)
at org.myy.JbpmTest02_Deploy.deploy(JbpmTest02_Deploy.java:13)
at org.myy.JbpmTest02_Deploy.main(JbpmTest02_Deploy.java:24)
Exception in thread "main" org.jbpm.jpdl.JpdlException: [[ERROR] couldn't parse process definition]
at org.jbpm.jpdl.xml.JpdlXmlReader.readProcessDefinition(JpdlXmlReader.java:163)
at org.jbpm.graph.def.ProcessDefinition.parseXmlInputStream(ProcessDefinition.java:172)
at org.jbpm.graph.def.ProcessDefinition.parseXmlResource(ProcessDefinition.java:153)
at org.myy.JbpmTest02_Deploy.deploy(JbpmTest02_Deploy.java:13)
at org.myy.JbpmTest02_Deploy.main(JbpmTest02_Deploy.java:24)
我的代码是:package org.myy;import org.jbpm.JbpmConfiguration;
import org.jbpm.JbpmContext;
import org.jbpm.graph.def.ProcessDefinition;public class JbpmTest02_Deploy { static JbpmConfiguration jbpmConfiguration = JbpmConfiguration.getInstance();

public static void deploy()
{
ProcessDefinition processDefinition = ProcessDefinition.parseXmlResource("process.xml");
JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
try{
jbpmContext.deployProcessDefinition(processDefinition);
}
finally{
jbpmContext.close();
}
}

public static void main(String []args){
JbpmTest02_Deploy.deploy();
}
}我的process.xml文件是:<?xml version="1.0" encoding="UTF-8"?>
<process-definition xmlns="http://jbpm.org/4.0/jpdl"  name="文档测试流程">
 <start-state name="开始">
<transition name="提交张三审批" to="张三审批"></transition>
</start-state>

<task-node name="张三审批">
<task name="审批1">
<assignment actor-id="张三"></assignment>
</task>
<transition name="提交李四审批" to="李四审批"></transition>
</task-node>

<task-node name="李四审批">
<task name="审批2">
<assignment actor-id="李四"></assignment>
</task>
<transition name="提交王五审批" to="王五审批"></transition>
</task-node>

<task-node name="王五审批">
<task name="审批3">
<assignment actor-id="王五"></assignment>
</task>
<transition name="流程结束" to="结束"></transition>
</task-node>
<end-state name="结束"></end-state>
</process-definition>这是什么错误呢,请高手解决!!!

解决方案 »

  1.   

    jbpm高手应该很快就能解决啊,高手们呢??
      

  2.   

    错误的意思是xml写错了,你是用eclipse生成的不、
      

  3.   

    今天下午,我将ProcessDefinition.parseXmlResource("process.xml")改为ProcessDefinition.parseXmlString("xml的文件字符串")后能够执行,可是定义好流程之后,我们一般都是读取xml而不去读取字符串啊,怎么解决这个parseXmlResource()方法的错误呢?
      

  4.   

    问题解决:process.xml路径错误,应该放在src目录下,而不是跟JbpmTest02_Deploy 同目录下