[Resolvido] Applet + dll  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
alberto_ribeiro
JavaEvangelist
[Avatar]

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
[Email] [MSN]
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.
alberto_ribeiro
JavaEvangelist
[Avatar]

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
[Email] [MSN]
alberto_ribeiro
JavaEvangelist
[Avatar]

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
[Email] [MSN]
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.
asaudate
GUJ Master
[Avatar]

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?

alberto_ribeiro
JavaEvangelist
[Avatar]

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
[Email] [MSN]
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á?
alberto_ribeiro
JavaEvangelist
[Avatar]

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
[Email] [MSN]
alberto_ribeiro
JavaEvangelist
[Avatar]

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
[Email] [MSN]
 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team