Hibernate + JBoss problem
dabubble Sep 13, 2005 10:54 AMHi all!
I'm trying to use a prepackaged persistence layer with a Web deployment in a small tutorial.
So the main war has a jar with the persistence layer.
The LibraryPersistence is has follows (works fine outside of JBoss)
librarypersistence.jar:
>library. (...) < all the hibernate files
>hibernate.cfg.xml
The content of hibernate.cfg.xml is:
<hibernate-configuration> <session-factory> <!-- properties --> <property name="connection.username">root</property> <property name="connection.url">jdbc:mysql://localhost:3306/test</property> <property name="dialect">org.hibernate.dialect.MySQLDialect</property> <property name="connection.password"></property> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <!-- mapping files --> <property name="myeclipse.connection.profile">MySQL Test Database</property><mapping resource="library/persistence/layer/Book.hbm.xml" /><mapping resource="library/persistence/layer/Customer.hbm.xml" /> </session-factory> </hibernate-configuration>
The main web deplyment has the following structure:
LibraryWeb.war:
>WEB-INF
>lib
>mysql-connector.....jar
>ehcache.....jar
>librarypersistence.jar
>...
... (all the files relative to the web part)
________________
At first it kept giving me error that it couldn't find the hibernate.cfg.xml file so I copyed it to the WEB-INF>classes dir wich worked but this solution doesn't work well form me has I'm trying to decople completely the persistence layer.
Now it keeps giving me errors tha it cant find the driver (com.mysql.jdbc.Driver) wich is directly in the lib dir and also it can't find a ehcache exception.
The full stack trace is:
14:51:40,109 INFO [Environment] Hibernate 3.1 beta 2 14:51:40,119 INFO [Environment] hibernate.properties not found 14:51:40,119 INFO [Environment] using CGLIB reflection optimizer 14:51:40,119 INFO [Environment] using JDK 1.4 java.sql.Timestamp handling 14:51:40,310 INFO [Configuration] configuring from resource: /hibernate.cfg.xml 14:51:40,310 INFO [Configuration] Configuration resource: /hibernate.cfg.xml 14:51:48,321 INFO [Configuration] Reading mappings from resource: library/persistence/layer/Book.hbm.xml 14:51:48,491 INFO [HbmBinder] Mapping class: library.persistence.layer.Book -> book 14:51:48,712 INFO [Configuration] Reading mappings from resource: library/persistence/layer/Customer.hbm.xml 14:51:48,742 INFO [HbmBinder] Mapping class: library.persistence.layer.Customer -> customer 14:51:48,752 INFO [Configuration] Configured SessionFactory: null 14:51:48,752 INFO [Configuration] processing extends queue 14:51:48,752 INFO [Configuration] processing collection mappings 14:51:48,752 INFO [HbmBinder] Mapping collection: library.persistence.layer.Customer.bookSet -> book 14:51:48,782 INFO [Configuration] processing association property references 14:51:48,782 INFO [Configuration] processing foreign key constraints 14:51:48,812 INFO [DriverManagerConnectionProvider] Using Hibernate built-in connection pool (not for production use!) 14:51:48,812 INFO [DriverManagerConnectionProvider] Hibernate connection pool size: 20 14:51:48,812 INFO [DriverManagerConnectionProvider] autocommit mode: false 14:51:48,862 INFO [DriverManagerConnectionProvider] using driver: com.mysql.jdbc.Driver at URL: jdbc:mysql://localhost:3306/test 14:51:48,872 INFO [DriverManagerConnectionProvider] connection properties: {user=root, password=} 14:51:48,872 WARN [SettingsFactory] Could not obtain connection metadata java.sql.SQLException: No suitable driver at java.sql.DriverManager.getConnection(DriverManager.java:545) at java.sql.DriverManager.getConnection(DriverManager.java:140) at org.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:110) at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:72) at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:1502) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1031) at library.persistence.hibernate.HibernateSessionFactory.currentSession(HibernateSessionFactory.java:58) at library.businesslogic.LibraryManager.getAllBooks(LibraryManager.java:40) at library.struts.action.BookListAction.execute(BookListAction.java:31) at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:226) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164) at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:397) at javax.servlet.http.HttpServlet.service(HttpServlet.java:697) at javax.servlet.http.HttpServlet.service(HttpServlet.java:810) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:39) at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:157) at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:59) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112) at java.lang.Thread.run(Thread.java:595) 14:51:48,942 INFO [Dialect] Using dialect: org.hibernate.dialect.MySQLDialect 14:51:48,962 INFO [TransactionFactoryFactory] Using default transaction strategy (direct JDBC transactions) 14:51:48,962 INFO [TransactionManagerLookupFactory] No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended) 14:51:48,962 INFO [SettingsFactory] Automatic flush during beforeCompletion(): disabled 14:51:48,962 INFO [SettingsFactory] Automatic session close at end of transaction: disabled 14:51:48,972 INFO [SettingsFactory] Scrollable result sets: disabled 14:51:48,972 INFO [SettingsFactory] JDBC3 getGeneratedKeys(): disabled 14:51:48,972 INFO [SettingsFactory] Connection release mode: null 14:51:48,972 INFO [SettingsFactory] Maximum outer join fetch depth: 2 14:51:48,972 INFO [SettingsFactory] Default batch fetch size: 1 14:51:48,972 INFO [SettingsFactory] Generate SQL with comments: disabled 14:51:48,972 INFO [SettingsFactory] Order SQL updates by primary key: disabled 14:51:48,972 INFO [SettingsFactory] Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory 14:51:48,982 INFO [ASTQueryTranslatorFactory] Using ASTQueryTranslatorFactory 14:51:48,982 INFO [SettingsFactory] Query language substitutions: {} 14:51:48,982 INFO [SettingsFactory] Second-level cache: enabled 14:51:48,982 INFO [SettingsFactory] Query cache: disabled 14:51:48,982 INFO [SettingsFactory] Cache provider: org.hibernate.cache.EhCacheProvider 14:51:49,082 ERROR [[action]] Servlet.service() for servlet action threw exception java.lang.NoClassDefFoundError: net/sf/ehcache/CacheException at java.lang.Class.getDeclaredConstructors0(Native Method) at java.lang.Class.privateGetDeclaredConstructors(Class.java:2328) at java.lang.Class.getConstructor0(Class.java:2640) at java.lang.Class.newInstance0(Class.java:321) at java.lang.Class.newInstance(Class.java:303) at org.hibernate.cfg.SettingsFactory.createCacheProvider(SettingsFactory.java:326) at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:219) at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:1502) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1031) at library.persistence.hibernate.HibernateSessionFactory.currentSession(HibernateSessionFactory.java:58) at library.businesslogic.LibraryManager.getAllBooks(LibraryManager.java:40) at library.struts.action.BookListAction.execute(BookListAction.java:31) at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:226) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164) at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:397) at javax.servlet.http.HttpServlet.service(HttpServlet.java:697) at javax.servlet.http.HttpServlet.service(HttpServlet.java:810) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:39) at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:157) at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:59) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112) at java.lang.Thread.run(Thread.java:595) 14:52:36,931 INFO [DriverManagerConnectionProvider] cleaning up connection pool: jdbc:mysql://localhost:3306/test
Anyone can help plz?
Thanks in advance.