| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/07/2010 14:11:02
|
alberto_ribeiro
JavaEvangelist
![[Avatar]](/images/avatar/b36ed8a07e3cd80ee37138524690eca1.jpg)
Membro desde: 01/07/2005 11:15:19
Mensagens: 351
Localização: SP
Offline
|
Boa tarde pessoal, estou desenvolvendo um sistema que a partir de uma applet chama uma dll, porém, o que está acontecendo é que ao chamar a dll parece que essa dll fica na memória, com isso em determinados momentos nem sempre... a applet lança um erro de que a dll já está carregada em outro classloader, porém se eu abrir um outro browser após o erro e clicar na função volta a funcionar, logo gostaria de saber se tem como eu descarregar a applet se é que existe isso, através de algum comando ?
[]'s
Alberto
This message was edited 1 time. Last update was at 15/07/2010 14:58:23
|
Sun Certified Programmer for Java 1.5 |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/07/2010 14:41:02
|
entanglement
GUJ Hacker
Membro desde: 26/09/2009 09:18:56
Mensagens: 5750
Offline
|
Se você puder migrar seu sistema para Java 7 (que nem foi lançado ainda - argh), ele tem um método para fechar um classloader. Isso talvez ajude a resolver seu problema, mas não é garantido.
Usar DLLs com applets tem esse problema, que é simplesmente insanável hoje em dia.
Se puder evitar isso, tanto melhor,. Infelizmente, você deve saber de antemão que mesmo usando um truque com classloaders (ou seja, remover todos os objetos criados por esse classloader classloader e forçá-lo a ser fechado e descarregado da memória - para que a DLL seja desmapeada - forçando um monte de vezes System.gc) simplesmente não funciona direito.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/07/2010 14:43:10
|
alberto_ribeiro
JavaEvangelist
![[Avatar]](/images/avatar/b36ed8a07e3cd80ee37138524690eca1.jpg)
Membro desde: 01/07/2005 11:15:19
Mensagens: 351
Localização: SP
Offline
|
nossa, então se o meu sistema tiver que ser com applet chamando a dll eu não tenho como corrigir isso, não existe uma forma para contornar essa situação ?  Caracas você conhece algo que possa fazer, pois o cliente deseja que seja assim rssss obrigado pela resposta
This message was edited 1 time. Last update was at 13/07/2010 14:44:46
|
Sun Certified Programmer for Java 1.5 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/07/2010 14:49:14
|
alberto_ribeiro
JavaEvangelist
![[Avatar]](/images/avatar/b36ed8a07e3cd80ee37138524690eca1.jpg)
Membro desde: 01/07/2005 11:15:19
Mensagens: 351
Localização: SP
Offline
|
opa um comentário apenas, quando eu fecho o browser e abro novamente o applet é carregado e volta a funcionar, será que não tem como eu restartar esse applet ?
[]'s
|
Sun Certified Programmer for Java 1.5 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/07/2010 14:56:31
|
entanglement
GUJ Hacker
Membro desde: 26/09/2009 09:18:56
Mensagens: 5750
Offline
|
alberto_ribeiro wrote:nossa, então se o meu sistema tiver que ser com applet chamando a dll eu não tenho como corrigir isso, não existe uma forma para contornar essa situação ?
Caracas você conhece algo que possa fazer, pois o cliente deseja que seja assim rssss
obrigado pela resposta
A única forma que eu conheço é instalar a DLL e o JAR que define as classes dessa DLL junto com a JRE que é usada pelos applets nesse browser. (A DLL fica em C:\Program Files\Java\jre6\bin e o jar em C:\Program Files\Java\jre6\lib\ext, por exemplo. Dessa maneira, tanto a DLL quanto o JAR nunca seriam descarregados pelo browser e não haveria esse erro " dll já está carregada em outro classloader" porque a DLL seria carregada pelo classloader default. Só que aí tanto a DLL quanto o JAR seriam muito difíceis de atualizar, e se houver a atualização automática da JRE, talvez o diretório mude, o que pode ocasionar problemas.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/07/2010 15:00:10
|
asaudate
GUJ Master
![[Avatar]](/images/avatar/974e2945a18e0bfb8e3aa8becac3e65c.jpg)
Membro desde: 01/09/2007 19:31:41
Mensagens: 1794
Localização: São Paulo
Offline
|
Tive esse problema, uma vez, com dois JAR´s de applets acessando a mesma biblioteca. É seu caso?
[]´s
|
Alexandre Saudate
__________________________
Do not try to bend the spoon - that's impossible. Instead, only try to realize the truth: there is no spoon.
Série quickstart: Spring+Spring Security+Jersey (REST) +Hibernate (JPA) -> https://github.com/alesaudate/kickstart-springjerseyhibernate
Evite usar Axis2!!! Leia aqui para mais detalhes!
@alesaudate
Quer ler um blog especializado em web services e SOA?
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/07/2010 15:06:34
|
alberto_ribeiro
JavaEvangelist
![[Avatar]](/images/avatar/b36ed8a07e3cd80ee37138524690eca1.jpg)
Membro desde: 01/07/2005 11:15:19
Mensagens: 351
Localização: SP
Offline
|
Na verdade tenho uma applet que chama uma dll depois de um determinado tempo ela acusa o erro citado no post... poderia tentar o que entanglement disse mas se mudarem as pastas vao me matar rsss
This message was edited 2 times. Last update was at 13/07/2010 15:08:58
|
Sun Certified Programmer for Java 1.5 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/07/2010 15:11:02
|
entanglement
GUJ Hacker
Membro desde: 26/09/2009 09:18:56
Mensagens: 5750
Offline
|
alberto_ribeiro wrote:Na verdade tenho uma applet que chama uma dll depois de um determinado tempo ela acusa o erro citado no post...
Ou seja, basta dar um Ctrl+F5 (ou F5) na página que isso pode ocorrer. Será?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/07/2010 15:14:21
|
alberto_ribeiro
JavaEvangelist
![[Avatar]](/images/avatar/b36ed8a07e3cd80ee37138524690eca1.jpg)
Membro desde: 01/07/2005 11:15:19
Mensagens: 351
Localização: SP
Offline
|
sim se executar a applet novamente ocorre... agora o engraçado é se eu fechar o browser e abrir novamente ele starta a applet denovo e tudo volta a funcionar
mas dai é ruim ficar mandando o cara fechar e abrir quando ocorrer isso rss
|
Sun Certified Programmer for Java 1.5 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/07/2010 14:56:40
|
alberto_ribeiro
JavaEvangelist
![[Avatar]](/images/avatar/b36ed8a07e3cd80ee37138524690eca1.jpg)
Membro desde: 01/07/2005 11:15:19
Mensagens: 351
Localização: SP
Offline
|
Pessoal não sei se o jeito que fiz é o melhor massss segui os conselhos de entanglement, coloquei diretamento nas pastas do java, agora se der qualquer problema de mudança de pasta terei que instalar tudo denovo... mas é o que deu pra fazer agora..
muito obrigado a todossssssssssssssssssss
|
Sun Certified Programmer for Java 1.5 |
|
|
 |
|
|