Excellent I will give that a try. What I was hoping to do was maintain one JDNI location for my database, but I will definitly try this out. Thanks! -David
----- Original Message ----- From: "David Friedman" <[EMAIL PROTECTED]> To: "Struts Users Mailing List" <[EMAIL PROTECTED]> Sent: Tuesday, December 16, 2003 6:34 PM Subject: RE: Plea for help w/Struts-Hibernate Plugin that has it working! > David, > > There is an alternative Struts/Hibernate/JNDI combination. All of it hinges > on one file: hibernate.cfg.xml. It doesn't require any changes to > server.xml or web.xml and works (at the very least) for me on Struts v1.0 & > v1.1 with Hibernate v2.0.3 & V2.1beta6 under Tomcat 4.1.24 through 4.1.29. > > ***** Use a hibernate.cfg.xml file like so (passwords changed and pardon my > MySQL slant) > > <?xml version='1.0' encoding='utf-8'?> > <!DOCTYPE hibernate-configuration PUBLIC > "-//Hibernate/Hibernate Configuration DTD 2.0//EN" > "http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd"> > <hibernate-configuration> > <session-factory name="dgf:/hibernate/SessionFactory"> > <property > name="dialect">net.sf.hibernate.dialect.MySQLDialect</property> > <property name="connection.username">AAAAAAAAAA</property> > <property name="connection.password">BBBBBBBBBB</property> > <property > name="connection.url">jdbc:mysql://localhost:3306/authors</property> > <property > name="connection.driver_class">com.mysql.jdbc.Driver</property> > <property name="show_sql">true</property> > <property name="use_outer_join">true</property> > <property > name="transaction.factory_class">net.sf.hibernate.transaction.JDBCTransactio > nFactory</property> > <property name="dbcp.minIdle">1</property> > <!-- Optional, I use this but it requires an opensymphony.org download of > OSCache > <property name="cache.use_query_cache">true</property> > <property > name="cache.provider_class">net.sf.hibernate.cache.OSCacheProvider</property > > > --> > > <!-- insert any mapping file so you don't need to hardcode adding > classes or adding files in a Java class --> > <mapping resource="hibernate/Misc.hbm.xml"/> > </session-factory> > </hibernate-configuration> > > The JNDI location is set in the session-factory tag using the 'name=""' > attribute. Whatever name you choose, DO NOT use anything starting > "java:comp/env" as that is read-only in Tomcat and will NOT work. I made up > a context named "dgf:/hibernate/SessionFactory" and was pleasantly surprised > when hibernate created the context for me and stored the SessionFactory > within it so I could us it in JNDI context lookups after I got the > InitialContext and performed a > ' SessionFactory sf = (SessionFactory) > context.lookup("dgf:/hibernate/SessionFactory");'. > > I see you want to use DBCP. As long as you set a minimum of 1 dbcp > property, hibernate will detect you want to use DBCP as your connection > pool. Feel free to set more than one DBCP property or even to use something > other than "dbcp.minIdle" as in my working example above. > > Hibernate can work with other connection pools. I recommend avoiding C3P0 > as it can't shutdown (eats up memory unless you fully shutdown the JVM [i.e. > TOMCAT] and restart). A Beta C3P0 allows shutdown of a C3P0 pool, but the > last time I checked, the Hibernate controlling class for C3P0 pooling still > had an empty finalize() and never actually shutdown my C3P0 pool. > > Regards, > David > > -----Original Message----- > From: David Erickson [mailto:[EMAIL PROTECTED] > Sent: Tuesday, December 16, 2003 7:20 PM > To: Struts Mailing List > Subject: Plea for help w/Struts-Hibernate Plugin that has it working! > > > For some reason I just cannot make the Struts-Hibernate plugin work.. I > can't make the Struts-Hibernate Listener work either. Here is the link to > class I am trying to use: > > http://www.hibernate.org/133.html > > Here is the error I get without fail every time.. now note that this jndi > connection WORKS fine when I use the HibernateUtil class, or when I use my > own JDNI tests. > > Error: > 2003-12-16 17:10:31,452 [DEBUG] impl.SessionImpl - opened session > 2003-12-16 17:10:31,468 [DEBUG] transaction.JDBCTransaction - begin > 2003-12-16 17:10:31,484 [DEBUG] util.JDBCExceptionReporter - SQL Exception > java.sql.SQLException: Cannot load JDBC driver class 'null' > at > org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.jav > a:529) > at > org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:3 > 12) > at > net.sf.hibernate.connection.DatasourceConnectionProvider.getConnection(Datas > ourceConnectionProvider.java:59) > at net.sf.hibernate.impl.BatcherImpl.openConnection(BatcherImpl.java:262) > at net.sf.hibernate.impl.SessionImpl.connect(SessionImpl.java:3155) > at net.sf.hibernate.impl.SessionImpl.connection(SessionImpl.java:3138) > at > net.sf.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:40) > > My setup: > tomcat_home\common\lib contains: > commons-dbcp.jar > commons-pool.jar > jdbc2_0-stdext.jar > jndi.jar > mysql-connector-java-3.0.8-stable-bin.jar > hibernate2.jar > etc > > Server.xml: > <DefaultContext > > <Resource name="jdbc/Salesweb" auth="Container" > type="javax.sql.DataSource"/> > <ResourceParams name="jdbc/Salesweb"> > <parameter> > <name>factory</name> > <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> > </parameter> > <parameter> > <name>maxActive</name> > <value>100</value> > </parameter> > <parameter> > <name>maxIdle</name> > <value>30</value> > </parameter> > <parameter> > <name>maxWait</name> > <value>10000</value> > </parameter> > <parameter> > <name>username</name> > <value>myuser</value> > </parameter> > <parameter> > <name>password</name> > <value>mypass</value> > </parameter> > <parameter> > <name>driverClassName</name> > <value>org.gjt.mm.mysql.Driver</value> > </parameter> > <parameter> > <name>url</name> > > <value>jdbc:mysql://192.168.0.104:3306/salesweb?autoReconnect=true</value> > </parameter> > </ResourceParams> > </DefaultContext> > > web.xml: > <resource-ref> > <description>Salesweb Database Connection</description> > <res-ref-name>jdbc/Salesweb</res-ref-name> > <res-type>javax.sql.DataSource</res-type> > <res-auth>Container</res-auth> > </resource-ref> > > hibernate.cfg.xml: > <hibernate-configuration> > <session-factory> > <property > name="connection.datasource">java:comp/env/jdbc/Salesweb</property> > <property name="show_sql">true</property> > <property > name="dialect">net.sf.hibernate.dialect.MySQLDialect</property> > <!-- Mapping files --> > <mapping resource="Prospect.hbm.xml"/> > > </session-factory> > </hibernate-configuration> > > Thanks for any help in advance!!! > -David > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]

