[jbpm]jBPM(九):jBPM的webSale在Tomcat下怎么连上的数据库?
2011-12-07 11:25
337 查看
在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时的异常栈, 发现这么一条有用的执行语句:
于是在Eclipse中Ctrl+Shift+T(打开源码的快捷方式)找到DbPersistenceServiceFactory类的第91行,原来有这么一条语句:
这个buildSessionFactory()倒是自写HibernateUtil中的很常用的方法, 有门了, 于顺藤摸瓜地看getConfiguration()这个方法的定义,再进而找到了HibernateHelper这么个类,呵呵, 发现亲人了! 这不跟自写的HibernateUtil类很像么?
于是在这个HibernateHelper类里看到盼望已久的代码:
到这里, 问题解决了95%了,再剩下的一个问题就是:是谁在调用上面红色代码的? webSale中体现在哪? 于是又一番顺藤摸瓜后, 发现是web.xml中配置的JbpmThreadsServlet类在init方法里以启动新线程的方式做了调用.
至此, "jBPM的webSale在Tomcat下怎么连数据库?"问题算是100%解决了, 不过在这个问题的解决送给我两个意外收获:JbpmThreadsServlet的妙用和HibernateUtil的职业写法,在后续的blog中将陆续梳理出来,"予人余香,手留玫瑰"地贴在这里, 敬请关注.
翻遍了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中将陆续梳理出来,"予人余香,手留玫瑰"地贴在这里, 敬请关注.
相关文章推荐
- tomcat是怎么工作的学习——一个简单的web服务器
- (1)jBPM websale代码学习: login.jsp
- 怎么通过web服务器访问MYSQL数据库,使其数据同步到android SQLite数据库?
- jBPM websale代码学习: home.jsp(启动流程)
- [jbpm]jBPM(十):webSale的"页面流"介绍
- (2)jBPM websale代码学习: home.jsp(显示任务列表)
- javaWeb——struct2 配置tomcat数据源方法连接数据库
- (3)jBPM websale代码学习: home.jsp(启动流程)
- maven项目:spring配置里:连接远程oracle(虚拟机里),【虚拟机没开启(数据库连接不上)导致tomcat启动失败(web.xml配置Spring了监听器)】=(也不报具体错误,就是超时)
- (4)jBPM websale代码学习: task.jsp(jBPM的两种分支策略)
- Tomcat下的web项目通过数据源连接mysq数据库
- JAVA WEB开发从数据库中查询到的数据用list怎么在JSP页面整齐的显示出来,请写代码,
- Tomcat中web.xml配置数据库和servlet的配置
- Eclipse中的tomcat怎么加载Maven WEB工程
- 【Debug】Web开发中,Tomcat正常启动,访问欢迎页404,怎么办?
- (1)jBPM websale代码学习: login.jsp
- JavaWeb:Tomcat下配置数据源连接数据库
- (4)jBPM websale代码学习: task.jsp(jBPM的两种分支策略)
- Eclipse的Web项目完成后怎么发布到Tomcat
- Tomcat与JavaWeb 4.2 数据库与数据源(DataSource)