Vamos ao que interessa. Criei um serviço paralelo ao sistema, para automatizar o banco.
Esse serviço é um “.jar” que o windows faz o controle no services.msc. Está todo feito em hibernate. Mas estou com um grande problema aqui
A conexão é feita pelo hibernate.properties que se encontra na raiz do src, que está dentro do .jar, e justamente ai está meu problema,
gostaria que este properties ficasse fora .jar, na mesma pasta que se encontra o mesmo.
Bom, o resto vcs já devem saber, quando tiro o hibernate.properties do src, exception estoura sem para.
alguem sabe como configuro o factory, as AnnotationConfiguration para ele buscar o hibernate.properties de outro caminho que não seja o src?
Mas isso tambem não me serve, por que o serviço vai rodar no cliente, e não gostaria de gerar cada jar especifico para cada cliente, estava pensando em algo assim:
c:/servico/ Aqui dentro o arquivo hibernate.properties e o .jar
Se ninguém sabe, então a pergunta não é besta.
A única coisa besta, no caso, foi o título do tópico.
Por favor, ao postar tópicos, dê um título descritivo. Todo mundo sabe que dentro do fórum terá uma pergunta e que, até agora, ninguém soube te responder (se tivesse te respondido, vc não teria criado o tópico). Portanto, ajude a quem vai te ajudar a não perder tempo, numa dúvida que ele talvez seja mais um que não saiba te responder.
Mas isso tambem não me serve, por que o serviço vai rodar no cliente, e não gostaria de gerar cada jar especifico para cada cliente, estava pensando em algo assim:
c:/servico/ Aqui dentro o arquivo hibernate.properties e o .jar
Mas mesmo assim, muito obrigado por contribuir! [/quote]
Bom, o problema não é com o hibernate, tampouco com o arquivo de propriedades.
O problema é da peça entre a cadeira e o computador.
Enfim,
Hibernate aceita configuração programática que, basicamente, consiste em pegar as propriedades e ir setando manualmente.
Desta forma, é possível fazer algo assim:
public static void main(String[] args) {
try{
File f = new File("C:\\caminho_onde_vai_o_properties\\teste.properties");
FileInputStream fis = new FileInputStream(f);
Properties prop = new Properties();
prop.load(fis);
String s = prop.getProperty("p1");
System.out.println(s);
}catch(Exception e){
e.printStackTrace();
}
}
E obter as propriedades.
Uma vez que estas foram obtidas, pode-se coloca-las nas configurações do hibernate.
Inclua no CLASSPATH do sistema o diretório onde está o hibernate.properties .
Deve funcionar sem alterações de código, a criação da factory continua sendo o tradicional factory = new AnnotationConfiguration().configure().buildSessionFactory()
Coloquei o post com esse titulo pra aguçar mesmo a curiosidade e o máximo de pessoas olharem.
drsmachado… se vc tem intimidade de me chamar de burro, me sinto a vontade pra te chamar de anta!!!
se eu quisesse explicitar o caminho do explorer dessa maneira que colocou, eu programava em .net, não em java. Isso que vc fez aí é coisa de matuto, a não ser que vc só programa pensando em windows!
Obrigado a todos que contribuiram de maneira construtiva. Mas consegui resolver aqui de outra forma;
Depois de tal demonstração de profissionalismo, quem entrou pra tentar ajudar está arrependido com certeza.
Mas fica a informação para caso outras pessoas com problema parecido venham a pesquisar o tópico.
E para que a história tenha um final mais interessante, vou consertar a última resposta: