Hibernate 3 + Tomcat 5.5.7 - DataSource Working

Pessoal,

Aparentemente não estou conseguindo configurar meu DataSource para o Hibernate.

Não estou afim de utilizar driver jdbc, mas datasource.

Minha aplicação é “deploiada” via o arquivo schulambis.xml:

<Context path="/attiva" docBase="C:/projetos/Attiva/webapps"
         debug="0">

<Resource name="jdbc/attiva" scope="Shareable" type="javax.sql.DataSource"/>

<ResourceParams name="jdbc/attiva">
	<parameter>
		<name>factory</name>
		<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
	</parameter>

<!-- DBCP database connection settings -->
	<parameter>
		<name>url</name>
		<value>jdbc:postgresql://localhost/attiva</value>
	</parameter>
		<parameter>
		<name>driverClassName</name>
		<value>org.postgresql.Driver</value>
	</parameter>
	<parameter>
		<name>username</name>
		<value>umUserNameCorreto</value>
	</parameter>
	<parameter>
		<name>password</name>
		<value>umaSenhaCorreta</value>
	</parameter>
		
<!-- DBCP connection pooling options -->
	<parameter>
		<name>maxWait</name>
		<value>3000</value>
	</parameter>
	<parameter>
		<name>maxIdle</name>
		<value>100</value>
	</parameter>
	<parameter>
		<name>maxActive</name>
		<value>3</value>
	</parameter>
</ResourceParams>

</Context>

Meu hibernate.cfg.xml tá da seguinte forma:

...
	<session-factory>

		<!-- properties -->
		<property name="connection.datasource">java:comp/env/jdbc/attiva</property>
		<property name="dialect">org.hibernate.dialect.PostgreSQLDialect</property>
		<property name="show_sql">true</property>
		<property name="use_outer_join">false</property>
...

E meus 3 arquivos de drivers PostgreSQL estão no <TOMCAT_HOME>/common/lib.

Estou obtendo a seguinte exceção:

ERROR [http-8080-Processor25] (JDBCExceptionReporter.java:58) - Cannot create JD
BC driver of class '' for connect URL 'null'
ERROR [http-8080-Processor25] (StandardWrapperValve.java:276) - Servlet.service(
) for servlet Attiva threw exception
org.hibernate.exception.GenericJDBCException: Cannot open connection
        at org.hibernate.exception.SQLStateConverter.handledNonSpecificException
(SQLStateConverter.java:82)
        at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.j
ava:70)
        at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelp
er.java:43)
        at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelp
er.java:29)
        at org.hibernate.jdbc.AbstractBatcher.openConnection(AbstractBatcher.jav
a:413)
        at org.hibernate.jdbc.JDBCContext.connect(JDBCContext.java:141)
        at org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:88)
        at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:
49)
        at org.hibernate.transaction.JDBCTransactionFactory.beginTransaction(JDB
CTransactionFactory.java:19)
        at org.hibernate.jdbc.JDBCContext.beginTransaction(JDBCContext.java:204)

        at org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1014
)
        at br.com.attiva.servlet.AttivaServlet.editClient(AttivaServlet.java:70)

        at br.com.attiva.servlet.AttivaServlet.service(AttivaServlet.java:48)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:252)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:173)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
alve.java:214)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
alve.java:178)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
ava:126)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
ava:105)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
ve.java:107)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav
a:148)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
:825)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce
ssConnection(Http11Protocol.java:738)
        at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpo
int.java:526)
        at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFol
lowerWorkerThread.java:80)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadP
ool.java:684)
        at java.lang.Thread.run(Thread.java:595)
Caused by: org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC dr
iver of class '' for connect URL 'null'
        at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDat
aSource.java:780)
        at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSo
urce.java:540)
        at org.hibernate.connection.DatasourceConnectionProvider.getConnection(D
atasourceConnectionProvider.java:59)
        at org.hibernate.jdbc.AbstractBatcher.openConnection(AbstractBatcher.jav
a:410)
        ... 23 more
Caused by: java.sql.SQLException: No suitable driver
        at java.sql.DriverManager.getDriver(DriverManager.java:243)
        at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDat
aSource.java:773)
        ... 26 more

Alguém sabe o que se passa ? Alguém tem o PostgreSQL funcionando via DataSource com o Hibernate (não precisa ser o 3.0).

Cara uma pergunta besta mas acho q vale a pena tentar :slight_smile:

Vc escreveu o context ou criou pelo console do tomcat??

Eu tive um problema parecido pois o xml que eu escrevi tava diferente do que o tomcat “gera”… tenta usar as confs abaixo e ve se rola… Pelo menos aqui eu uso assim :slight_smile:

Você precisa copiar o jar com driver do BD e o commons-dbcp p/ o common/lib/ do Tomcat.