设为首页 收藏本站
查看: 752|回复: 0

[经验分享] jBPM(九):jBPM的webSale在Tomcat下怎么连上的数据库?

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2017-2-8 12:09:43 | 显示全部楼层 |阅读模式
  在jBPM(八): 也说jBPM + Tomcat + MySQL里,介绍了如何配置jBPM自带例子webSale运行在Tomcat中, 也陈述了这样一个实事:到目前为止,还没发现问题,尽管跟网上介绍的繁琐配置不一样.jBPM(八)中的配置一个很大的不同点就是没有在Tomcat中配置JNDI,那么我们不意要问:webSale是怎么连的数据库呢?
   翻遍了webSale的代码也没找到类似neworg.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 connectionmetadata 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、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-339248-1-1.html 上篇帖子: 整合tomcat 整合iis共用80端口亲测可以通过 下篇帖子: tomcat中cookie的设置与jsp中session的设置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表