Problema configurar POOL conexoes TOMCAT

3 respostas
J

Olá pessoal,

sou novo no forum e no java e estou tendo dificuldades em cofigurar o POOL conexoes no TOMCAT, aparece o seguinte erro:

org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot load JDBC driver class 'net.sourceforge.jtds.jdbc.Driver'
	at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1136)
	at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880)
	at ConexaoFactory.getConexao(ConexaoFactory.java:19)
	at LoginDAO.inserirDados(LoginDAO.java:7)
	at Login.doPost(Login.java:17)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
	at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: net.sourceforge.jtds.jdbc.Driver
	at java.net.URLClassLoader$1.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Unknown Source)
	at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1130)
	... 18 more

criei um arquivo context.xml dentro da pasta META-INF com os seguintes dados:

<?xml version="1.0" encoding="UTF-8"?>

	<Context auth="Container">
	<Resource
		name="jdbc/nomeBD"
		type="javax.sql.DataSource"
		url="jdbc:jtds:sqlserver://host:1433/"
		driverClassName = "net.sourceforge.jtds.jdbc.Driver"
		username="user"
		password="password"
		maxActive="100"
		maxIdle="20"
		removeAbandoned="true"
		removeAbandonedTimeout="60"/>
	</Context>

configurei o arquivo web.xml assim:

<resource-ref>
		<res-ref-name>
	     	jdbc/nomeBD
		</res-ref-name>
		<res-type>
		     javax.sql.DataSource
		</res-type>
		<res-auth>
		     Container
		</res-auth>
	</resource-ref>

e criei um metodo que abre a conexao assim:

public static Connection getConexao() throws Exception {
	
		Connection con = null;	
		InitialContext contexto = new InitialContext();
		DataSource ds = (DataSource)contexto.lookup("java:comp/env/jdbc/nomeBD");
		con = ds.getConnection();	
        	return con;
	}

Todos os dados acima, retirei de artigos na web. O erro acontece ao tentar carregar a classe do driver, tentei com o driver fornecido pela Microsoft (o banco é SQL Server 2000), mas o resultado foi o mesmo.

P.S.: o jar jtds encontra-se na pasta lib e foi adicionado ao path.

Valew desde já aos que responderem.

3 Respostas

J

Mas na pasta “lib” do tomcat ou do teu projeto na IDE?

Você tentou rodar o tomcat “por fora” ou por meio de IDE? Se foi pelo Eclipse, dependendo da versão, você precisará de configurações adicionais.

J

Mas na pasta “lib” do tomcat ou do teu projeto na IDE?

Você tentou rodar o tomcat “por fora” ou por meio de IDE? Se foi pelo Eclipse, dependendo da versão, você precisará de configurações adicionais.

Nóo, deu certo!!

Realmente o JTDS estava na pasta lib da aplicação e não do TOMCAT.

Valeu cara, Abraços.

J

Que bom.

Lembra que se quer um pool de conexão no AS, então o driver de conexão deve estar no AS e não na aplicação :wink:

E não esquece de por o [RESOLVIDO] no tópico pra ajudar outros colegas, ok?

Abraços.

Criado 20 de julho de 2011
Ultima resposta 21 de jul. de 2011
Respostas 3
Participantes 2