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]

Reply via email to