问一个有关JBPM连MySQL数据库的问题,高手请进

环境:JDK:j2sdk1.4.2 Tomcat:5.0 JBPM:3.1.1 MySQL:5.0 我想让方法getInstance()查找jbpm.hibernate.cfg.xml的值,用该值作为配置文件创建一个JbpmSessionFactory,所以我的jbpm.properties文件是这样的:

jbpm.scheduler.service.factory=org.jbpm.scheduler.impl.SchedulerServiceImpl jbpm.task.instance.class=org.jbpm.taskmgmt.exe.TaskInstance

uncomment the next line if JbpmSessionFactory.getInstance() # should lookup the singleton instance from JNDI instead of creating # a default one. # #jbpm.session.factory.jndi.name=java:comp/env/jdbc/jbpm

uncomment the next line to use the file system instead of the database for # storing files related to a process definition # # jbpm.files.dir=c:/jbpm.data

resource path to a properties file that will overwrite all the hibernate # properties. For database specific builds in db project there is a different # hibernate.properties file on the classpath for each database. You could change # the default database for any testing runs by uncommenting the next line and # adding a hibernate.properties file in the basedir. # jbpm.hibernate.cfg.xml=jbpm.hibernate.cfg.xml #jbpm.hibernate.properties=jbpm.hibernate.properties

jbpm.hibernate.properties文件中的内容全部注释掉,之后用ant生成jbpm.war,部署到tomcat中,启动时出现以下异常:

2006-5-10 15:28:09 org.jbpm.msg.command.CommandExecutorThread run 严重: java.lang.NoClassDefFoundError: org/hibernate/Session 2006-5-10 15:28:09 org.apache.catalina.core.StandardHostDeployer install 信息: Installing web application at context path /tomcat-docs from URL file:D:\T omcat 5.0\webapps\tomcat-docs 2006-5-10 15:28:09 org.apache.catalina.core.StandardHostDeployer install 信息: Installing web application at context path /jsp-examples from URL file:D:\ Tomcat 5.0\webapps\jsp-examples 2006-5-10 15:28:10 org.apache.catalina.core.StandardHostDeployer install 信息: Installing web application at context path /servlets-examples from URL fil e:D:\Tomcat 5.0\webapps\servlets-examples java.lang.NoClassDefFoundError: org/hibernate/Session at org.jbpm.persistence.db.DbPersistenceServiceFactory.openService(DbPer sistenceServiceFactory.java:55) at org.jbpm.svc.Services.getService(Services.java:136) at org.jbpm.svc.Services.getPersistenceService(Services.java:175) at org.jbpm.JbpmContext.getPersistenceService(JbpmContext.java:515) at org.jbpm.JbpmContext.getSchedulerSession(JbpmContext.java:423) at org.jbpm.scheduler.impl.SchedulerThread.executeTimers(SchedulerThread .java:103) at org.jbpm.scheduler.impl.SchedulerThread.run(SchedulerThread.java:70) 2006-5-10 15:28:14 org.jbpm.msg.command.CommandExecutorThread run 严重: java.lang.NoClassDefFoundError: org/hibernate/Session 2006-5-10 15:28:47 org.apache.catalina.core.StandardHostDeployer install 信息: Installing web application at context path /webdav from URL file:D:\Tomcat 5.0\webapps\webdav 2006-5-10 15:28:48 org.apache.catalina.core.StandardHostDeployer install 信息: Installing web application at context path /bgzdh from URL file:D:\Tomcat 5.0\webapps\bgzdh 2006-5-10 15:28:50 org.apache.coyote.http11.Http11Protocol start 信息: Starting Coyote HTTP/1.1 on port 80 2006-5-10 15:28:51 org.apache.jk.common.ChannelSocket init 信息: JK2: ajp13 listening on /0.0.0.0:8009 2006-5-10 15:28:51 org.apache.jk.server.JkMain start 信息: Jk running ID=0 time=20/110 config=D:\Tomcat 5.0\conf\jk2.properties 2006-5-10 15:28:51 org.apache.catalina.startup.Catalina start 信息: Server startup in 80886 ms 2006-5-10 15:28:52 org.jbpm.msg.command.CommandExecutorThread run 严重: java.lang.NoClassDefFoundError: org/hibernate/Session 2006-5-10 15:28:57 org.jbpm.msg.command.CommandExecutorThread run 严重: java.lang.NoClassDefFoundError: org/hibernate/Session 2006-5-10 15:29:02 org.jbpm.msg.command.CommandExecutorThread run 严重: java.lang.NoClassDefFoundError: org/hibernate/Session 2006-5-10 15:29:07 org.jbpm.msg.command.CommandExecutorThread run 严重: java.lang.NoClassDefFoundError: org/hibernate/Session

运行http://localhost/jbpm后出现以下异常: javax.servlet.ServletException: org.apache.jasper.JasperException javax.faces.webapp.FacesServlet.service(FacesServlet.java:109) org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:712) org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:682) org.apache.jsp.index_jsp._jspService(index_jsp.java:46) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133) javax.servlet.http.HttpServlet.service(HttpServlet.java:856) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248) javax.servlet.http.HttpServlet.service(HttpServlet.java:856) org.jbpm.webapp.filter.AuthenticationFilter.doFilter(AuthenticationFilter.java:55) org.jbpm.web.JbpmContextFilter.doFilter(JbpmContextFilter.java:83) org.jbpm.webapp.filter.LogFilter.doFilter(LogFilter.java:59)

root cause

javax.faces.FacesException: org.apache.jasper.JasperException org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:425) org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:234) org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:300) javax.faces.webapp.FacesServlet.service(FacesServlet.java:95) org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:712) org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:682) org.apache.jsp.index_jsp._jspService(index_jsp.java:46) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133) javax.servlet.http.HttpServlet.service(HttpServlet.java:856) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248) javax.servlet.http.HttpServlet.service(HttpServlet.java:856) org.jbpm.webapp.filter.AuthenticationFilter.doFilter(AuthenticationFilter.java:55) org.jbpm.web.JbpmContextFilter.doFilter(JbpmContextFilter.java:83) org.jbpm.webapp.filter.LogFilter.doFilter(LogFilter.java:59)

note The full stack trace of the root cause is available in the Tomcat logs.

请问这是怎么回事啊?我觉得是jbpm没有连接上数据库,可能是没有找到hibernate.cfg.xml文件,这个文件究竟应放在哪里呢?

hibernate.cfg.xml是放在classpath中,如web项目的WEB-INF/classes目录下

> hibernate.cfg.xml是放在classpath中,如web项目的WEB-INF > classes目录下

谢谢楼上。 我对ant不是太熟,不是太明白它把class文件放哪了,我估计是打成jar文件放在lib目录下。因为tomcat工程下的classes目录中只有两个文件:messages.properties、messages_fr.properties。 我把%jbpm_home%/src/config.files/ 下的hibernate.cfg.xml和ehcache.xml copy到如你所说的位置,错误照旧,真不知怎么回事,急死了! 可是我搜索了tomcat工程的lib目录也找不到hibernate.cfg.xml文件,ant把它放哪了?

没有遇到这样的问题吗?