Com certeza é simples, porém?

Olá a todos;

Pessoal estou fazendo um projetinho Java em Web (Jps+Servlet) porém está acontecendo algo que para mim é um mistério.
Eu acredito que seja algo bem simples, provavelmente até algum conceito que eu não conheço.

Vamos lá:
Nesse projeto Web estou usando um o DB HSqlDb para persistência dos dados etc.
Porém quando o meu Servlet chama uma classse que eu fiz para conectar ao Db e somente via DAO fazer as consultas etc o meu projeto parece não conseguir se conectar ao Db o que me retorna um NullPoint e daí para frente é pau.
O que me estranha é o seguinte, eu tenho um pacote nesse projeto para testes das minhas classe (uma classe com main()) incluindo essa que faz conexão no DB e nos DAOs, hehehe e quando roda esses testes tudo roda blz, ou seja, me conecto no Db normalmente e faço todas as consultas belezinha…

Eu acredito que isso tenha mais a ver com conceitos, aonde colocar os JAR e até mesmo os .Class, mas enfim, já tentei de tudo pessoal.
No começo eu achei que fosse problema com os projeto visto que eu separo tudo em vários projetos distintos e depois faço referência etc.
Mas agora eu estou testando tudo no projeto Web, ou seja, passei as minhas classes para o projeto Web para 100% de certeza.

Bom o erro que me aparece é esse aqui:
java.sql.SQLException: No suitable driver found for jdbc:hsqldb:hsql://localhost/
at java.sql.DriverManager.getConnection(Unknown Source

E depois dá um NullPoint em um dos meus DAOs pois a minha Connection é NULL, eu já dei uma debugada e via que falha bem aqui:
[i] private String url = “jdbc:hsqldb:hsql://localhost/”;
private String user = “SA”;
private String pass = “”;
private Connection connection;

public HSqlDBImpl() {
	try {
		connection = DriverManager.getConnection(url,user,pass);
	} catch (SQLException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
}

[/i]

Alguém aí saberia qual é o problema ???

Até +

Nunca essei DB…maaas, pelo erro, acho que ele não tá achando o driver pra ele.

Você tem o driver dele na sua lista de jars?

E o nome do banco de dados na string?

"jdbc:hsqldb:hsql://localhost/nomeDoBanco"; 

Vc omitiu de propósito ou esqueceu mesmo?

Opa pessoal;

Primeiramente Valeu pela atenção:

Então eu tenho a JAR do HSqlDB lá no projeto, tanto é que se eu rodo a minha MAIN de Teste funciona normal…conecto e faço as consultas.
Já quanto ao nome do DB no HSqlDB se você não colocar nada ele aceita como sendo um default. Eu sinceramente não acho que o problema seja aqui já que se eu rodo essa String/conexão usando meu MAIN de Teste funciona…

Mas por via das dúvidas:
Eu vou tentar criar um DB com um nome fechado para testar…e ver o que acontece ok.

Estranho né pessoal, uma classe normal consegue usar a conexão já o Servlet não ???

Hehehehe,
Uma coisa pessoal, eu estou usando o Eclipse e o mesmo está configurado para salvar os .class no Build e não no WEB-INF/Classes, eu acho que o problema também não é aqui visto que as minhas outras Servlet (heheh as que não usam o DB) estão funcionando legal e também já fiz o teste de trocar para o WEB-INF/Classes mas deu na mesma.

Outra coisa, os meus JAR estão sendo importatos externamente e não sendo colocados na pasta LIB do WEBCONTENT, o que vocês acham ???

Não sabia que podia usar a string de conexão sem o nome do banco, mas se os testes funcionam o problema pode ser que seu jar do hsqldb não estejam sendo adicionados na pasta lib do projeto. Da uma checada no arquivo .war da aplicação e veja se dentro dele tem a pasta lib com os jars.

Opa Valeu;

Acabei de criar um DB com um nome e um alise.
Mudei a minha string de conexão mas deu o mesmo problema…vou dar uma olhada no que você falou agora para ver…

Valeu…

Vixi Cara, o meu projeto não tem nenhum arquivo .WAR…
Deveria ter ??? Se sim por que será que o emu Eclipse não gerou…

obs: Uma perguntinha tosca: para que serve esse .war ?
Também dei uma olhada nos exemplo que vem com o TomCat e lá tb não tem…

Acabei de fazer um teste:
Copiei as minhas JAR para a pasta lib do WEB-INF e dei um AddExternalJAR mas ainda sim deu o mesmo problema…

Com certeza é algo relacionado ao que você disse, por algum motivo classes normais consegue referências 100% o jar do HSqlDB porém os Servlet não.

Bom é isso aí…

[quote=usphisics]Vixi Cara, o meu projeto não tem nenhum arquivo .WAR…
Deveria ter ??? Se sim por que será que o emu Eclipse não gerou…

obs: Uma perguntinha tosca: para que serve esse .war ?
Também dei uma olhada nos exemplo que vem com o TomCat e lá tb não tem…

Acabei de fazer um teste:
Copiei as minhas JAR para a pasta lib do WEB-INF e dei um AddExternalJAR mas ainda sim deu o mesmo problema…

Com certeza é algo relacionado ao que você disse, por algum motivo classes normais consegue referências 100% o jar do HSqlDB porém os Servlet não.

Bom é isso aí…[/quote]

Boa noite usphisics,

Quando você tem um Java Project, você pode gerar um .jar com ele certo?

Agora quando você tem um Dynamic Web Project, você não gera um .jar e sim um .war :smiley:

Da uma lida nesse conteudo porque acho que ta faltando você fazer alguns mapeamentos !

http://www.dsc.ufcg.edu.br/~jacques/cursos/j2ee/html/servlets/techsupport.htm

Falo !

Se não está usando arquivo .war, você precisa adicionar o drive do hsqldb dentro do diretório webContent/lib
É nesse diretório que o servidor vai ler todas as dependências externas da aplicação.

Valeu pessoal por toda a ajuda…
O problema os sr acertaram, os jar estavam fora do lugar correto.

O mais engraçado é q ontem eu tentei colocar os mesmo na lib do web-inf mas continuou dando pau.
Hoje a única coisa q fiz foi mudar o workspace para outro lugar e mandar o eclipse importar o projeto novamente…hehehe funcionou.

Bom mas o importante é isso, funcionou…

Valeu…

Boa noite,

Então coloca [RESOLVIDO] no assunto do fórum, se outras pessoas tiverem a mesma duvida !

Falo !