ClassLoader  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
Dennys
JavaEvangelist

Membro desde: 06/04/2003 15:28:35
Mensagens: 399
Localização: Taboão da Serra
Offline

Salve, Salve Galera!

Alguém pode ajudar?

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?


Atn.
Dennys Fredericci
http://www.dennys.eti.br
[MSN] [ICQ]
louds
Moderador
[Avatar]

Membro desde: 29/04/2003 23:09:15
Mensagens: 4061
Localização: São Paulo
Offline

Entenda como o mecanismo de classloading funciona no Java e estude a classe UrlClassLoader.

http://www.kumpera.net/blog/
http://www.mono-project.com/
"Each individual should work for himself. People will not sacrifice themselves for the company. They come to work at the company to enjoy themselves."
Soichiro Honda
[ICQ]
Dennys
JavaEvangelist

Membro desde: 06/04/2003 15:28:35
Mensagens: 399
Localização: Taboão da Serra
Offline

louds wrote:Entenda como o mecanismo de classloading funciona no Java e estude a classe UrlClassLoader.



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
[MSN] [ICQ]
louds
Moderador
[Avatar]

Membro desde: 29/04/2003 23:09:15
Mensagens: 4061
Localização: São Paulo
Offline

Use um SO que preste...
Extraia o jar no diretorio de trabalho ou expanda ele em memoria.

http://www.kumpera.net/blog/
http://www.mono-project.com/
"Each individual should work for himself. People will not sacrifice themselves for the company. They come to work at the company to enjoy themselves."
Soichiro Honda
[ICQ]
Dennys
JavaEvangelist

Membro desde: 06/04/2003 15:28:35
Mensagens: 399
Localização: Taboão da Serra
Offline

louds wrote: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
[MSN] [ICQ]
Filipe Sabella
GUJ Expert

Membro desde: 12/03/2003 11:25:57
Mensagens: 4680
Offline

Recomendo o livro Java Reflection in Action.

Former LIPE.
[ICQ]
louds
Moderador
[Avatar]

Membro desde: 29/04/2003 23:09:15
Mensagens: 4061
Localização: São Paulo
Offline

Dennys wrote:
Todo SO vai segurar o jar...


Todos quais cara-pálida?

http://www.kumpera.net/blog/
http://www.mono-project.com/
"Each individual should work for himself. People will not sacrifice themselves for the company. They come to work at the company to enjoy themselves."
Soichiro Honda
[ICQ]
Dennys
JavaEvangelist

Membro desde: 06/04/2003 15:28:35
Mensagens: 399
Localização: Taboão da Serra
Offline

louds wrote:
Dennys wrote:
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
[MSN] [ICQ]
Dennys
JavaEvangelist

Membro desde: 06/04/2003 15:28:35
Mensagens: 399
Localização: Taboão da Serra
Offline

LIPE wrote:Recomendo o livro Java Reflection in Action.



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

A reflexção ficou assim:



Se rodo ele no eclipse com o classpath configurado ele funciona beleza....obvio....


Agora se eu rodo ele no prompt de comando ele dá uma exeption....




Alguém tem alguma idéia?



Atn.
Dennys Fredericci
[MSN] [ICQ]
Dennys
JavaEvangelist

Membro desde: 06/04/2003 15:28:35
Mensagens: 399
Localização: Taboão da Serra
Offline

Aeeeee!


Consegui fazer com que a aplicação tenha seu próprio classloader!



Atn.
Dennys Fredericci
http://www.dennys.eti.br

[MSN] [ICQ]
O_SANTO_
Entusiasta Java
[Avatar]

Membro desde: 27/07/2005 16:45:24
Mensagens: 17
Localização: Brasil : Nordeste : Paraíba : João Pessoa
Offline

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

This message was edited 1 time. Last update was at 27/07/2005 20:07:47


http://ricardojrm.blogspot.com
louds
Moderador
[Avatar]

Membro desde: 29/04/2003 23:09:15
Mensagens: 4061
Localização: São Paulo
Offline

O classpath do teu classloader está errado.

http://www.kumpera.net/blog/
http://www.mono-project.com/
"Each individual should work for himself. People will not sacrifice themselves for the company. They come to work at the company to enjoy themselves."
Soichiro Honda
[ICQ]
Dennys
JavaEvangelist

Membro desde: 06/04/2003 15:28:35
Mensagens: 399
Localização: Taboão da Serra
Offline

O_SANTO_ wrote: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....


Atn.
Dennys Fredericci
[MSN] [ICQ]
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team