介绍FoxBpm如何实现发布连接器
关于FoxBPM连接器前面单独做过介绍,本章介绍FoxBPM如何发布连接器。
有关连接发布配置在foxbpm.cfg.xml文件中
<resourcePathConfig> <resourcePath id="foxbpmflowconnector" name="流程连接器路径" type="flowConnector" projectName="foxbpm-connector" virtualPath="src/main/ 4000 java/org/foxbpm/connector/flowconnector/" src="org/foxbpm/connector/flowconnector/" /> <resourcePath id="foxbpmactorconnector" name="处理者选择器路径" type="actorConnector" projectName="foxbpm-connector" virtualPath="src/main/java/org/foxbpm/connector/actorconnector/" src="org/foxbpm/connector/actorconnector/" /> </resourcePathConfig>
注意:这里配置有两个用途:
1、foxbpm-rest服务通过以上配置来发布连接器信息 ;
2、FoxBPM流程设计器需要获取以上配置来进行读取连接信息;
以上是两个resourcePath节点项是FoxBPM默认提供的连接器。
下面介绍下resourcePath 节点属性项:
id:一般唯一编号;
name:名称;
type:这里目前只支持(flowConnector、actorConnector)其中一个;
projectName:存在的工程名称,这里需要注意的是:这个项目名称和最终打包名称必须一致;
virtualPath:这里注意是获取或者写入连接器资源信息;
src:包路径;
注意:路径分隔使用/
关于FoxBPM连接器发布
1、关于FoxBPM连接器发布是有foxbpm-rest服务来完成的,foxbpm-rest服务启动过程会通过FoxBPM流程引擎来获取foxbpm.cfg.xml文件中配置的连接器信息
1、获取连接器资源信息
Map<String,Map<String,String>> pathMap = new HashMap<String,Map<String,String>>(); ProcessEngineConfigurationImpl processEngineConfigurationImpl = ProcessEngineManagement.getDefaultProcessEngine().getProcessEngineConfiguration(); ResourcePathConfig resourcePathConfig = processEngineConfigurationImpl.getResourcePathConfig(); List<ResourcePath> resourcePaths = resourcePathConfig.getResourcePath();
2、处理连接器资源
for(ResourcePath path : resourcePaths){ if("flowConnector".equals(path.getType()) || "actorConnector".equals(path.getType())){ Map<String,String> pathList = pathMap.get(path.getProjectName()); if(pathList == null){ pathList = new HashMap<String, String>(); pathMap.put(path.getProjectName(), pathList); } pathList.put(path.getType(), path.getSrc()); } }
for(String key : pathMap.keySet()){ Map<String,String> pathList = pathMap.get(key); if(pathList ==null){ continue; } for(String tmp : pathList.keySet()){ String dirPath = pathList.get(tmp); URL url = this.getClass().getClassLoader().getResource(dirPath); if(url == null){ log.warn("位置:" + dirPath + " 不存在,跳过不处理"); continue; } String urlStr = url.toString(); String jarPath = urlStr.substring(0, urlStr.indexOf("!/") + 2); URL jarURL = new URL(jarPath); JarURLConnection jarCon = (JarURLConnection) jarURL.openConnection(); JarFile jarFile = jarCon.getJarFile(); Enumeration<JarEntry> jarEntrys = jarFile.entries(); while (jarEntrys.hasMoreElements()) { JarEntry entry = jarEntrys.nextElement(); String name = entry.getName(); if(name.startsWith(dirPath) && !entry.isDirectory() && !name.endsWith(".class")){ 处理连接器的配置文件.... } } log.debug("位置:" + dirPath + " 处理完毕"); } }
foxbpm-rest服务启动完成后,会在foxbpm-webapps-base服务的WEB-INF\classes\目录下生tmpConnectorZipFile.zip中
注意:这时候还需要检查设计器中配置的rest服务地址和本地缓存地址是否都配置正确 ;window-->preferences-->流程设计器;
保证以上配置都正确后,我们再点击“同步设计器”
,会提示如下信息
点击确定后会在d:/ba目录下生成serviceFiles\connector\foxbpm-connector\连接器信息,这里说明FoxBPM连接器发布完成了。
接下来我们可以创建一个bpmn文件来验证下,在流程图上点击一个人工任务选择“任务分配”,或“连接器”点击看是否能正常出现连接器配置界面。
详情请关注FoxBPM,官方地址:https://github.com/FoxBPM/
阅读更多- 如何实现在Maven下发布JNLP程序+jar数字签名
- [技术分享 - ISA 篇] 如何通过ISA2006发布网站时实现URL跳转
- WCF技术剖析之二十七: 如何将一个服务发布成WSDL[基于WS-MEX的实现](提供模拟程序)
- 自动换行问题,而连续的数字和英文字符常常将容器撑大,下面介绍的是CSS如何实现换行的方法
- Linux集群服务知识点总结及通过案例介绍如何实现高性能web服务(一)
- Fragment介绍和运用(如何用Fragment实现Tab切换的方法,)
- 以向VS 程序打包集成自动写入注册表功能为例,介绍如何实现自由控制安装过程
- WCF技术剖析之二十七: 如何将一个服务发布成WSDL[基于HTTP-GET的实现](提供模拟程序)
- 心得6--Response介绍和如何实现动态文件内容的下载详细介绍
- 斗地主算法的设计与实现(一)--项目介绍&如何定义和构造一张牌
- 如何使用JCA (J2EE 连接器架构)实现企业应用--转载
- 如何在github上发布一个带动画介绍的项目
- Node中EventEmitter以及如何实现JavaScript中的订阅/发布模式
- 如何实现非填报表发布后源文件中生成ID
- zookeeper-服务器角色介绍(如何实现一致性)
- WCF技术剖析之二十七: 如何将一个服务发布成WSDL[基于WS-MEX的实现](提供模拟程序)
- 苹果应用程序发布流程:如何将应用上传到 App Store 的详细流程介绍
- CodeSharp.EventSourcing框架介绍-如何实现异步事件订阅
- 如何使用 J2EE 连接器架构实现企业应用
- 如何正确实现PHP显示文章发布时间