Pergunta besta, mas ninguem sabe

8 respostas
L

Boa tarde galera…

Gostaria da ajuda de vocês se possível…

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?

8 Respostas

paulo1911

Coloca o properties na mesma raiz do jar
e refencia o properties assim na url do file

.//Hibernate.properties ou …//hibernate.properties

fallow

L

Então Paulo, fiz isso mesmo, só que li o hibernate.properties no método conectar(), como mostro abaixo:

Properties p = new Properties();  
    p.load(new FileInputStream(new File("hibernate.properties")));  
                  
    Class.forName(p.getProperty("hibernate.connection.driver_class").trim());  
                  
    conn = DriverManager.getConnection(p.getProperty("hibernate.connection.url").trim(),  
            p.getProperty("hibernate.connection.username").trim(),  
            p.getProperty("hibernate.connection.password").trim());

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!

ViniGodoy

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.

drsmachado
Leandro Ricardo:
Então Paulo, fiz isso mesmo, só que li o hibernate.properties no método conectar(), como mostro abaixo:
Properties p = new Properties();  
    p.load(new FileInputStream(new File("hibernate.properties")));  
                  
    Class.forName(p.getProperty("hibernate.connection.driver_class").trim());  
                  
    conn = DriverManager.getConnection(p.getProperty("hibernate.connection.url").trim(),  
            p.getProperty("hibernate.connection.username").trim(),  
            p.getProperty("hibernate.connection.password").trim());

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!

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.
gomesrod

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()

L

O Vini… [edit:OFENSIVO]

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;

gomesrod

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:

ViniGodoy

Segundo as regras do fórum:

Se continuar com essa conduta, podemos cancelar sua conta. Sou moderador do fórum, orientar quanto ao uso correto é o meu papel.

Não adianta aguçar a curiosidade de quem não pode resolver sua dúvida. Por favor, leia as regras de etiqueta:
http://www.istf.com.br/perguntas/

Em especial:
http://www.istf.com.br/perguntas/#bespecific
http://www.istf.com.br/perguntas/#easyreply
http://www.istf.com.br/perguntas/#not_losing

Vou trancar o tópico. Quando aprender a ter mais educação, volte a abri-lo.

Criado 8 de março de 2012
Ultima resposta 9 de mar. de 2012
Respostas 8
Participantes 5