在jBPM(八): 也说jBPM + Tomcat + MySQL
里,
介绍了如何配置jBPM自带例子webSale运行在Tomcat中, 也陈述了这样一个实事:
到目前为止,还没发现问题,尽管跟网上介绍的繁琐配置不一样.
jBPM(八)中的配置一个很大的不同点就是没有在Tomcat中配置JNDI,那么我们不意要问:webSale是怎么连的数据库呢?
翻遍了webSale的代码也没找到类似new
org.hibernate.cfg.Configuration().configure()这样的代码,而且更为神奇的是打开Hibernate的
Configuration类源码在关键地方(Configuration()和configure())设置了断点,Tomcat启动时竟然没停!
Tomcat启动后随便点webSale里的login等操作,前面设置的断点也没停!
这就是传说中的闹鬼?!
为了"捉鬼", 我把jBPM(八): 也说jBPM + Tomcat + MySQL
里
第四步拷到Eclipse里的hibernate.cfg.xml改了数据库连接, 心想: 这下看你webSale怎么连?
给你一个错的hibernate.connection.url. 果然没有连上,报"Could not obtain connection
metadata java.sql.SQLException:Access denied for user
'root'@'localhost' (using password: YES)"异常信息了. 呵呵, 看来这个世界上没鬼.
好吧, 既然没鬼了,那就按咱们先辈传来的唯物主义思想来查问题吧. 于是看了, 上面改hibernate.connection.url时的异常栈, 发现这么一条有用的执行语句:
at org.jbpm.persistence.db.DbPersistenceServiceFactory.getSessionFactory(DbPersistenceServiceFactory.java:91)
于是在Eclipse中Ctrl+Shift+T(打开源码的快捷方式)找到DbPersistenceServiceFactory类的第91行,原来有这么一条语句:
sessionFactory = getConfiguration().buildSessionFactory();
这
个buildSessionFactory()倒是自写HibernateUtil中的很常用的方法, 有门了,
于顺藤摸瓜地看getConfiguration()这个方法的定义,再进而找到了HibernateHelper这么个类,呵呵, 发现亲人了!
这不跟自写的HibernateUtil类很像么?
于是在这个HibernateHelper类里看到盼望已久的代码:
Configuration configuration = new Configuration();
.........
log.debug("using default hibernate configuration resource (hibernate.cfg.xml)");
configuration.configure();
到这里, 问题解决了95%了,再剩下的一个问题就是:是谁在调用上面红色代码的? webSale中体现在哪? 于是又一番顺藤摸瓜后, 发现是web.xml中配置的JbpmThreadsServlet类在init方法里以启动新线程的方式做了调用.
至此, "jBPM的webSale在Tomcat下怎么连数据库?"问题算是100%解决了,
不过在这个问题的解决送给我两个意外收获:JbpmThreadsServlet的妙用和HibernateUtil的职业写法,在后续的blog中将陆
续梳理出来,"予人余香,手留玫瑰"地贴在这里, 敬请关注.
分享到:
相关推荐
【jbpm_websale.rar】是一个包含JBPM(Business Process Management)网上销售示例的压缩包,这个实例对于初学者理解和掌握JBPM技术及其在Java Web应用中的实践非常有帮助。该实例结合了JSF(JavaServer Faces)前端...
本文主要探讨的是如何将jBPM(一个开源的工作流管理系统)集成到Tomcat应用服务器,并连接MySQL数据库进行数据存储。jBPM是一个强大的业务流程管理(BPM)和工作流系统,它提供了完整的工具集来设计、部署和执行业务...
jbpm jbpm4.3.jar DDDDDDDD
本文详细介绍了如何在Tomcat和MySQL环境下安装jBPM 4.4,包括了软件下载、配置数据库、安装jBPM等步骤。通过遵循以上步骤,您可以成功地搭建一个基于jBPM的工作流管理系统,为您的业务流程管理提供强大的支持。请...
在JBPM6中,默认使用H2内存数据库进行存储,但实际生产环境中,我们通常会选择更为稳定且功能强大的MySQL或PostgreSQL作为持久化存储。本教程将指导您如何将JBPM的默认数据库从H2切换到MySQL或PostgreSQL,并提供...
JBPM数据库表说明 2 1 流程配置类数据库表: 2 1.1 JBPM_PROCESSDEFINITION:流程模版表 2 1.2 JBPM_NODE:流程节点表 2 1.3 JBPM_TRANSITION:流程迁移表 3 1.4 JBPM_ACTION:流程动作表 4 1.5 JBPM_EVENT:...
4. **持久化支持**:利用Hibernate作为默认的持久化层,确保流程实例和数据能够在数据库中安全存储和恢复。 5. **监控和报表**:提供详细的统计信息和实时监控功能,帮助管理员跟踪流程执行状态和性能。 接下来,...
【标题】"chen-jbpm_websale.zip_jbmp_jbmp_java_jbpm_jbpm_websale_网上销售系统" 提供的是一个基于JBPM(Java Business Process Management)技术的网上销售系统的示例项目。JBPM是一个开源的工作流管理系统,它...
在这个项目中,我们将讨论如何在Tomcat服务器上部署一个名为"jbpmweb"的工程,实现流程的部署和运行。 首先,我们需要理解jbpmweb工程的基本结构。这个工程通常包含了JBPM的核心库,如jbpm-bpmn2、jbpm-persistence...
3. **数据库初始化**:在连接成功后,你需要创建对应的JBPM数据库表。JBPM提供了一个脚本目录,其中包含了针对不同数据库的初始化脚本。对于MySQL,你可以在启动前执行`create-tables.sql`脚本来创建必要的表。 4. ...
jbpm数据库表字段详解 jbpm是基于工作流管理系统的开源软件,它提供了强大的工作流引擎,可以自动执行业务流程,并提供了灵活的配置和扩展机制。jbpm的数据库表字段是jbpm系统的核心组件之一,它存储了工作流的所有...
在 jbpm 4.4 中,主要使用的数据库表有: jbpm4_deployment jbpm4_deployment 表用于存储流程部署的记录,包括流程定义、流程实例、任务等信息。该表通过 dbid 字段关联到 jbpm4_deployprop 和 jbpm4_lob 两个表。...
- **JNDI DataSource**:通过JNDI名称来引用已配置的数据源,这种方式需要在应用服务器(如Weblogic)上定义数据源。 **3. 添加 jar 库文件** - **步骤**: - 选择项目 -> 属性 -> Java Build Path -> Libraries...
在这个“jBPM4_mysql_tomcat.zip_jbpm4”压缩包中,我们关注的是如何在Apache Tomcat服务器上配置并运行jbPM4,同时使用MySQL作为其后台数据库。这个过程涉及到几个关键步骤,包括环境准备、数据库配置、jbPM4的部署...
- 还要设置JNDI数据源的引用,如java:comp/env/jdbc/jbpmDB,这涉及到在JNDI上下文中配置数据库连接。 4. 配置项目环境 - 在Eclipse的Preferences中配置JBoss服务器设置,确保JBoss服务器配置正确,以便于jBPM...
jbpm数据库是jbpm框架在运行时存储流程实例、任务、变量等信息的地方,它是jbpm系统的核心组成部分之一。本文将深入探讨jbpm数据库的相关知识点。 1. **jbpm数据库结构** jbpm使用关系型数据库来存储其运行时数据...
### JBPM数据库表结构详解 #### 一、概述 JBPM是Java Business Process Model的缩写,是一款开源的工作流引擎,用于实现业务流程管理和自动化的工具。JBPM的设计旨在简化复杂的业务流程,使得非技术人员也能够理解...
在实际使用中,他们还需要数据库支持(如MySQL、Oracle等)以及配置文件来存储流程实例和相关数据。 JBPM允许通过图形化的方式设计流程,使用BPMN(Business Process Model and Notation)标准,这使得非技术人员也...