Conectar base HSQLDB standalone na chamada do banco

Oi pessoal, estou recentemente utilizando hsqldb e não tive problemas para acessar o swing ou programar com ele, porém, quando tentei criar um war com uma versão standalone dele não consegui de jeito nenhum, não sei qual caminho especificar para ele. Segue o código e a estrutura para facilitar:

[code]
package br.com.Conexao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class AbreConexao {

public static Connection getConnection() throws SQLException{
	try{
		Class.forName("org.hsqldb.jdbcDriver");
		return DriverManager.getConnection("jdbc:hsqldb:file:src/br/com/Conexao/base", "sa", "");
	} catch (ClassNotFoundException e){
		throw new SQLException (e.getMessage());
	}
}

}[/code]

o caminho da conexão está na minha última tentativa, porém não obtive sucesso

o erro é este:

javax.servlet.ServletException: java.sql.SQLException: Database lock acquisition failure: lockFile: org.hsqldb.persist.LockFile@f1018cf5[file =C:\Program Files\eclipse\src\br\com\Conexao\base.lck, exists=false, locked=false, valid=false, ] method: openRAF reason: java.io.FileNotFoundException: C:\Program Files\eclipse\src\br\com\Conexao\base.lck (O sistema não pode encontrar o caminho especificado)
	org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:862)
	org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:791)
	org.apache.jsp.index_jsp._jspService(index_jsp.java:111)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

Ele está buscando em C:\Program Files\eclipse\src\br\com\Conexao\base.lck e não na raiz do meu projeto

Alguém ja teve este erro antes?

Você tem que passar o diretório completo de onde está o banco.

Para pegar o diretório raiz da aplicação talvez o comando abaixo ajude:

System.getProperty("user.dir")

qual é a pasta que está o banco?

a base está no src do meu projeto, na mesma pasta do criador de conexões.

Cara, acredito que no “/src” não é uma boa idéia, pois se um dia voce implementar algum mecanismo de “build”, geralmente esse diretório só existe durante o processo de compilação e na hora do deploy, o mesmo é ignorado (geralmente é isso)

Sendo assim, mova o db para a pasta WEB-INF/lib ou a pasta WEB-INF (acredito que a primeira opção seja a melhor)

Depois tente algo como:

DriverManager.getConnection("jdbc:hsqldb:file:../base", "sa", ""); 

coloquei no web-inf/lib e especifiquei o caminho que você havia sugerido …/base, agora ele está procurando o arquivo em C:\Program Files\base.lck, que bxinho enjoadinho esse hsqldb kkkkk, se tiver mais dicas eu aceito =), enquanto isso também vou continuar minha cega busca aqui rs rs

obrigado pela ajuda até agora

pessoal, eu estava fazendo alguns testes e tentei utilizar o System.getProperty(“user.dir”) mas não entendi mto não. Quando eu o utilizei ele me trouxe o caminho do eclipse, e não do meu aplicativo. Levei ele para uma outra pasta e o rodei com tomcat, então ele me trouxe somente C:/tomcat, e nunca o caminho real do aplicativo. Eu estou fazendo algo errado ou é isso mesmo?

Ainda não achei a solução pro bd

Fala André.

Já tentei fazer funcionar dessa forma que vocês está querendo e desisti. Li em algum lugar (talvez a própria documentação do banco) que não é recomendado utilizar configuração standalone dentro de servidores web (de aplicação), justamente devido a dinamicidade do servidor. De um dia pro outro o administrador pode ter que mudar alguns diretórios, ou mesmo você mudar o nome da aplicação e vai ferrar com a conexão que está bem estatica.
O mais recomendado é utilizar ele em modo webservice (ou algo parecido), e dai é só configurar seu datasource/context.xml para procurar a conexão num localhost, muito parecido como seria num outro banco de dados instalado localmente.

Galera eu sei que é politica do fórum não reviver tópicos, mas acabei caindo no mesmo problema do Andre.Foes e consegui encontrar o erro.

Está faltando uma barra após o caminho especificado, ficando assim.

DriverManager.getConnection("jdbc:hsqldb:file:../base/", "sa", "");

espero que me compreendam, pois se eu cheguei até aqui com o mesmo problema, outras pessoas com certeza devem ter vindo e irão vir aqui em busca de uma solução.

Teh mais