Hola Eduardo, El caso en el que sucede está claro. Al limpiar la máquina virtual, se produce la recarga del classloader y esto produce que se intente cargar de nuevo la DLL, la cual ya está cargada a nivel de la JVM y entonces falla.
¿Podrías dar algún detalle más de cuando se produce el error en condiciones normales? ¿Sois capaces de reproducir el fallo sin limpiar la JVM? En un futuro muy próximo estamos pensando en volver a utilizar las funcionalidades de Java 6 para el acceso al store de windows, dejando así de lado la DLL actual y sólo usándola si tienes Java 5 en el cliente. Dejamos de utilizar este procedimiento hace algunas versiones al detectar algunos problemas de compatibilidad con algunas tarjetas inteligentes, pero parece que actualmente vuelve a estar bastante estable. En vuestro caso, este problema desaparecería definitivamente. --- Salut, ==================================== Ricardo Borillo Domenech http://xml-utils.com / http://twitter.com/borillo 2010/5/12 Eduardo Pardo <[email protected]>: > Hola Ricardo, > > Gracias por tu contestación. No cambiamos los jar´s que cargamos en el > applet. Es decir, desplegamos la aplicación y en ocasiones se produce el > error y en ocasiones no. Cuando se produce tenemos que borrar la máquina > virtual y volver a cargar el applet. > > Cuando no se produce, es muy facil forzar el error, simplemente limpiamos la > máquina virtual de java y volvemos a cargar el applet, entonces se produce. > > Es extraño, pero cualquier ayuda nos será muy util. > > Muchas gracias. > > Saludos. > > > > Eduardo Pardo Guillén > Responsable Técnico de Producto > email: epa...@tissat. > Teléfono: 963939916 > TISSAT S.A. > Av. Leonardo da Vinci 5 > 46980 Paterna > > > > > -----Mensaje original----- > De: [email protected] > [mailto:[email protected]] En nombre de Ricardo Borillo > Enviado el: miércoles, 12 de mayo de 2010 18:57 > Para: Llista de correu per al CryptoApplet > Asunto: Re: [CryptoApplet] cryptoapplet > > Hola Eduardo, > > El método loadLibrary no es capaz de cargar más de una vez la mima > librería dinámica para el mismo classloader. > > De una carga a otra, ¿Alteras los JARs que están definidos en el > codebase cuando defines el applet? > Si siempee pones los mismos, el classloader es el mismo y no da el error. > > --- > Salut, > ==================================== > Ricardo Borillo Domenech > http://xml-utils.com / http://twitter.com/borillo > > > > 2010/5/12 Eduardo Pardo <[email protected]>: >> >> El problema se da cuando necesita recargar MicrosoftCryptoApi_0_3.dll. Si >> sirve de algo, estamos usando oc4j. ¿No se ha detectado este error antes? >> >> Saludos. >> >> >> Eduardo Pardo Guillén >> Responsable Técnico de Producto >> email: [email protected] >> Teléfono: 963939916 >> TISSAT S.A. >> Av. Leonardo da Vinci 5 >> 46980 Paterna >> >> >> >> >> -----Mensaje original----- >> De: Eduardo Pardo >> Enviado el: miércoles, 12 de mayo de 2010 11:17 >> Para: 'Llista de correu per al CryptoApplet' >> Asunto: cryptoapplet >> >> Hola, os cuento el problema que nos ha surgido: >> >> Después de realizar el desarrollo para firmar pdf´s, hemos detectado que >> tenemos un error, ya que en el navegador iexplorer no funciona. El error es >> el siguiente: >> >> java.lang.UnsatisfiedLinkError: Native Library C:\Documents and >> Settings\epardo\Configuración local\Temp\MicrosoftCryptoApi_0_3.dll already >> loaded in another classloader >> at java.lang.ClassLoader.loadLibrary0(Unknown Source) >> at java.lang.ClassLoader.loadLibrary(Unknown Source) >> at java.lang.Runtime.load0(Unknown Source) >> at java.lang.System.load(Unknown Source) >> at es.uji.dsign.applet2.AppHandler.install(AppHandler.java:547) >> at es.uji.dsign.applet2.AppHandler.<init>(AppHandler.java:162) >> at es.uji.dsign.applet2.AppHandler.getInstance(AppHandler.java:180) >> at es.uji.dsign.applet2.SignatureApplet.init(SignatureApplet.java:54) >> at >> sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source) >> at java.lang.Thread.run(Unknown Source) >> navigator: IEXPLORER >> >> >> El mismo error ocurre cuando intentamos ejecutar vuestro ejemplo de firma >> pdf. De todos modos, el código donde descargamos el applet es: >> >> function firmar(){ >> >> CryptoApplet= document.getElementById('CryptoApplet'); >> CryptoApplet.setLanguage("ES_es"); >> CryptoApplet.setInputDataEncoding("PLAIN"); >> CryptoApplet.setSignatureOutputFormat("PDF"); >> var urlIn = url_static + "/ResolucionPdf.jsp"; >> var urlOut = url_static + "/FirmarResolucionPdf.jsp"; >> CryptoApplet.signDataUrlToUrl(urlIn, urlOut); >> >> } >> >> >> <applet id="CryptoApplet" name="CryptoApplet" >> code="es.uji.dsign.applet2.SignatureApplet" width="0" >> height="0" >> codebase="firma" >> archive="ujiApplet-2.0.5.jar, ujiConfig-2.0.5.jar, >> ujiCrypto-2.0.5.jar, ujiUtils-2.0.5.jar, >> jakarta-log4j-1.2.6.jar,itext-1.4.8.jar, bctsp-jdk15-138.jar, >> bcmail-jdk15-138.jar, bcprov-jdk15-138.jar" >> mayscript> >> </applet> >> >> >> >> ¿Nos podéis ayudar?. >> >> Muchas gracias. Saludos. >> >> Eduardo Pardo Guillén >> Responsable Técnico de Producto >> email: [email protected] >> Teléfono: 963939916 >> TISSAT S.A. >> Av. Leonardo da Vinci 5 >> 46980 Paterna >> >> >> >> >> ------------------------------------------------------------------------------------------------------------------------------------ >> Nota Legal: Este correo electrónico puede contener información estrictamente >> confidencial y es de uso exclusivo del destinatario, quedando prohibida a >> cualquier otra persona su revelación, copia, distribución, o el ejercicio de >> cualquier acción relativa a su contenido. Si ha recibido este correo >> electrónico por error, por favor, conteste al remitente, y posteriormente >> proceda a borrarlo de su sistema. Gracias por su colaboración. >> >> Confidentiality notice: This e-mail message may contain confidential and/or >> legally privileged information and is solely for the attention and use of >> the intended recipient. Any disclosure, copying, distribution or the taking >> of any action with relation to the contents of this e-mail by any other >> person is strictly prohibited. If you believe that this e-mail has been >> mistakenly sent to you, please reply to the sender from whom you received >> the message in error and then delete the original e-mail from your system. >> Thank you for your co-operation. >> ------------------------------------------------------------------------------------------------------------------------------------ >> >> _______________________________________________ >> CryptoApplet mailing list >> [email protected] >> http://llistes.uji.es/mailman/listinfo/cryptoapplet >> >> > _______________________________________________ > CryptoApplet mailing list > [email protected] > http://llistes.uji.es/mailman/listinfo/cryptoapplet > _______________________________________________ > CryptoApplet mailing list > [email protected] > http://llistes.uji.es/mailman/listinfo/cryptoapplet > > _______________________________________________ CryptoApplet mailing list [email protected] http://llistes.uji.es/mailman/listinfo/cryptoapplet
