我用设计器设计了一个流程 满足jpdl ,包是jbpm4的,现在想用包里面的工具自己解析xml文件,转化成java对象,把节点和线路存放到数据库中,取得的Transition对象,只有源节点和线路名称,没有目标节点,我的代码如下:
JpdlParser jpdlParser=new JpdlParser();
Document document = null;
Parse parse = null;
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setNamespaceAware(true);
parse=jpdlParser.createParse();
document = factory.newDocumentBuilder().parse(new File("D:/Personal/workspace/bpm_maxeltech/test/test.jpdl.xml"));
NodeList nodeList = document.getElementsByTagName("process");
for (int i = 0; i < nodeList.getLength(); i++) {
Element node = (Element) nodeList.item(i);
//修复jbpm实现中的bug,push两个实例
JpdlProcessDefinition processDefinition=new JpdlProcessDefinition();
parse.contextStackPush(new UnresolvedTransitions());
parse.contextStackPush(processDefinition);
jpdlParser.parseActivities(node, parse, processDefinition);
List<Activity> activityList=(List<Activity>) processDefinition.getActivities();
for (Activity activity : activityList) {
System.out.println(activity.getType()+":"+activity.getName());
System.out.println("入口:"+activity.getIncomingTransitions());
System.out.println("出口:"+activity.getOutgoingTransitions());
System.out.println("默认出口:"+activity.getDefaultOutgoingTransition());
}
}
}
打印出来没有入口节点,出口节点 没有目标节点,求达人指教,最好能附上代码...
JpdlParser jpdlParser=new JpdlParser();
Document document = null;
Parse parse = null;
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setNamespaceAware(true);
parse=jpdlParser.createParse();
document = factory.newDocumentBuilder().parse(new File("D:/Personal/workspace/bpm_maxeltech/test/test.jpdl.xml"));
NodeList nodeList = document.getElementsByTagName("process");
for (int i = 0; i < nodeList.getLength(); i++) {
Element node = (Element) nodeList.item(i);
//修复jbpm实现中的bug,push两个实例
JpdlProcessDefinition processDefinition=new JpdlProcessDefinition();
parse.contextStackPush(new UnresolvedTransitions());
parse.contextStackPush(processDefinition);
jpdlParser.parseActivities(node, parse, processDefinition);
List<Activity> activityList=(List<Activity>) processDefinition.getActivities();
for (Activity activity : activityList) {
System.out.println(activity.getType()+":"+activity.getName());
System.out.println("入口:"+activity.getIncomingTransitions());
System.out.println("出口:"+activity.getOutgoingTransitions());
System.out.println("默认出口:"+activity.getDefaultOutgoingTransition());
}
}
}
打印出来没有入口节点,出口节点 没有目标节点,求达人指教,最好能附上代码...
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货