Problema: Com uma aplicação rodando, e é necessário atualizar um arquivo .jar, a aplicação não é capaz de reconhecer se o jar foi alterado e continua usando as classes do jar que foram chamadas anterior mente pelo ClassLoader.
Pergunta: Como faço para detectar que o jar foi alterado e chamar pelo ClassLoader?!?!
Sei que o tomcat tem algo assim… alguém tem idéia de como isso acontece?? dicas?
Entenda como o mecanismo de classloading funciona no Java e estude a classe UrlClassLoader.
Dennys
Hum… estou chegando lá
O problema é que eu quero atualizar meu arquivo jar porém o sistema operacional trava o arquivo e não deixa eu mudar ele caso alguém esteja utilizando…
Eu quero atualizar o arquivo jar sem ter que parar o sistema…
No tomcat ele permite você sobrescrever o arquivo…
Alguém sabe como o tomcat faz para permitir que alguém possa sobrescrever este arquivo?
Atn.
Dennys Fredericci
louds
Use um SO que preste…
Extraia o jar no diretorio de trabalho ou expanda ele em memoria.
Dennys
louds:
Use um SO que preste…
Extraia o jar no diretorio de trabalho ou expanda ele em memoria.
Todo SO vai segurar o jar…
pois o jar está sendo utilizado pelo processo X… blá blá blá…
No tomcat ele permite você trocar o jar e ele ainda verifica se o jar é mais recente, se for ele chama lá um ClassLoader e se vira…
O problema é trocar este jar…
Atn.
Dennys Fredericci
_fs
Recomendo o livro Java Reflection in Action.
louds
Dennys:
Todo SO vai segurar o jar…
Todos quais cara-pálida?
Dennys
louds:
Dennys:
Todo SO vai segurar o jar…
Todos quais cara-pálida?
ele vai segurar o jar se ele estiver no classpath! o que eu quero é um “classpath” dinamico… eu achei a solução… vou implementar e posto aqui…
Atn.
Dennys Fredericci
Dennys
Fala Lipe! Entendi(acho) rs* o porque da recomendação do livro…
O ponto que eu cheguei até agora foi o seguinte:
Achei uma classe do Tomcat que implementa ClassLoader, aparentemente é o que eu preciso :)…
E por reflexão eu chamo o main da classe que eu quero deixar com um classloader dinamico…
Dennys, como foi a solução que você adotou para o problema?
Estou fazendo um código aqui onde uso o ClassLoader, até então é bem simples e usei certas linhas que você citou neste tópico. Eu compilo sem problemas, até executo pelo JCreator, porém quando vou usar o método em um arquivo jsp, nas linhas de código com o ClassLoader, ele perde o rumo da miada me retornando um java.lang.ClassNotFoundException.
Assim, queria saber a solução que você utilizou, pois quem sabe poderá ser a minha também!
Desde já agradeço a compreensão.
C’ya
louds
O classpath do teu classloader está errado.
Dennys
O_SANTO_:
Dennys, como foi a solução que você adotou para o problema?
Estou fazendo um código aqui onde uso o ClassLoader, até então é bem simples e usei certas linhas que você citou neste tópico. Eu compilo sem problemas, até executo pelo JCreator, porém quando vou usar o método em um arquivo jsp, nas linhas de código com o ClassLoader, ele perde o rumo da miada me retornando um java.lang.ClassNotFoundException.
Assim, queria saber a solução que você utilizou, pois quem sabe poderá ser a minha também!
Desde já agradeço a compreensão.
C’ya
Em que ambiente você vai usar o classloader?!
Não entendi o que você quer com ClassLoarder e JSP…