`

jBPM(九):jBPM的webSale在Tomcat下怎么连上的数据库?

阅读更多

          在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中将陆 续梳理出来,"予人余香,手留玫瑰"地贴在这里, 敬请关注.

1
1
分享到:
评论
1 楼 rmn190 2009-09-22  
“hibernate.connection.url时的异常栈”, 呵呵,真是天助自助者,看似一个搞笑的改动,居然从它的异常栈找到了有用信息。

再说一次天助自助!

相关推荐

    jbpm_websale.rar_JSF_java JBPM_jbpm_jbpm websale_websale jb

    【jbpm_websale.rar】是一个包含JBPM(Business Process Management)网上销售示例的压缩包,这个实例对于初学者理解和掌握JBPM技术及其在Java Web应用中的实践非常有帮助。该实例结合了JSF(JavaServer Faces)前端...

    jBPM(八): 也说jBPM + Tomcat + MySQL

    本文主要探讨的是如何将jBPM(一个开源的工作流管理系统)集成到Tomcat应用服务器,并连接MySQL数据库进行数据存储。jBPM是一个强大的业务流程管理(BPM)和工作流系统,它提供了完整的工具集来设计、部署和执行业务...

    jbpm jbpm4.3.jar

    jbpm jbpm4.3.jar DDDDDDDD

    jBPM4.4 安装在Tomcat+MySql环境

    本文详细介绍了如何在Tomcat和MySQL环境下安装jBPM 4.4,包括了软件下载、配置数据库、安装jBPM等步骤。通过遵循以上步骤,您可以成功地搭建一个基于jBPM的工作流管理系统,为您的业务流程管理提供强大的支持。请...

    JBPM修改数据库教程以及实例

    在JBPM6中,默认使用H2内存数据库进行存储,但实际生产环境中,我们通常会选择更为稳定且功能强大的MySQL或PostgreSQL作为持久化存储。本教程将指导您如何将JBPM的默认数据库从H2切换到MySQL或PostgreSQL,并提供...

    JBPM数据库表说明 jbpm 工作流 详细到每一个字段,不要下载分

    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:...

    jbpm 数据库jbpm 数据库

    jbpm数据库是jbpm框架在运行时存储流程实例、任务、变量等信息的地方,它是jbpm系统的核心组成部分之一。本文将深入探讨jbpm数据库的相关知识点。 1. **jbpm数据库结构** jbpm使用关系型数据库来存储其运行时数据...

    JBPM5基于tomcat web的应用

    4. **持久化支持**:利用Hibernate作为默认的持久化层,确保流程实例和数据能够在数据库中安全存储和恢复。 5. **监控和报表**:提供详细的统计信息和实时监控功能,帮助管理员跟踪流程执行状态和性能。 接下来,...

    chen-jbpm_websale.zip_jbmp_jbmp java_jbpm_jbpm_websale_网上销售系统

    【标题】"chen-jbpm_websale.zip_jbmp_jbmp_java_jbpm_jbpm_websale_网上销售系统" 提供的是一个基于JBPM(Java Business Process Management)技术的网上销售系统的示例项目。JBPM是一个开源的工作流管理系统,它...

    JBPM-web开发部署tomcat-实现流程部署

    在这个项目中,我们将讨论如何在Tomcat服务器上部署一个名为"jbpmweb"的工程,实现流程的部署和运行。 首先,我们需要理解jbpmweb工程的基本结构。这个工程通常包含了JBPM的核心库,如jbpm-bpmn2、jbpm-persistence...

    jbpm连接mysql数据库的实例以及问题解决方案

    3. **数据库初始化**:在连接成功后,你需要创建对应的JBPM数据库表。JBPM提供了一个脚本目录,其中包含了针对不同数据库的初始化脚本。对于MySQL,你可以在启动前执行`create-tables.sql`脚本来创建必要的表。 4. ...

    jbpm创建数据库jbpm创建数据库

    在JBPM中,所有的流程实例、任务、变量等信息都需要存储在数据库中。因此,在使用JBPM之前,需要先创建一个专门用于存储这些数据的数据库。这一步骤对于确保JBPM的正常运行至关重要。通常情况下,可以使用多种类型的...

    jbpm数据库表字段详解

    jbpm数据库表字段详解 jbpm是基于工作流管理系统的开源软件,它提供了强大的工作流引擎,可以自动执行业务流程,并提供了灵活的配置和扩展机制。jbpm的数据库表字段是jbpm系统的核心组件之一,它存储了工作流的所有...

    jbpm数据库表介绍

    在 jbpm 4.4 中,主要使用的数据库表有: jbpm4_deployment jbpm4_deployment 表用于存储流程部署的记录,包括流程定义、流程实例、任务等信息。该表通过 dbid 字段关联到 jbpm4_deployprop 和 jbpm4_lob 两个表。...

    jBPM开发:配置EclipseIDE开发环境参考.pdf

    - **JNDI DataSource**:通过JNDI名称来引用已配置的数据源,这种方式需要在应用服务器(如Weblogic)上定义数据源。 **3. 添加 jar 库文件** - **步骤**: - 选择项目 -> 属性 -> Java Build Path -> Libraries...

    jBPM4_mysql_tomcat.zip_jbpm4

    在这个“jBPM4_mysql_tomcat.zip_jbpm4”压缩包中,我们关注的是如何在Apache Tomcat服务器上配置并运行jbPM4,同时使用MySQL作为其后台数据库。这个过程涉及到几个关键步骤,包括环境准备、数据库配置、jbPM4的部署...

    jBPM开发:配置EclipseIDE开发环境.pdf

    - 还要设置JNDI数据源的引用,如java:comp/env/jdbc/jbpmDB,这涉及到在JNDI上下文中配置数据库连接。 4. 配置项目环境 - 在Eclipse的Preferences中配置JBoss服务器设置,确保JBoss服务器配置正确,以便于jBPM...

    jbpm数据库表结构

    ### JBPM数据库表结构详解 #### 一、概述 JBPM是Java Business Process Model的缩写,是一款开源的工作流引擎,用于实现业务流程管理和自动化的工具。JBPM的设计旨在简化复杂的业务流程,使得非技术人员也能够理解...

Global site tag (gtag.js) - Google Analytics