2009-07-23 9 views
9

Recientemente dos de nuestros clientes han informado problemas con nuestros applets. En cuanto a la consola del complemento java, está llena de ClassNotFoundException, por lo que no se ejecuta ningún código.¿Cómo depurar/registrar/rastrear un problema de carga de applet?

He podido reproducir el trazado de la pila usando una imagen de pc virtual con 0 espacio libre en el disco, pero el problema desaparece al restaurar algo de espacio en disco y los usuarios me dicen que su disco no está lleno; ellos son capaces de crear nuevos archivos.

Nuestro applet requiere java 6, y el problema ha aparecido con las actualizaciones 1, 10 y 14 de la jre. También hemos probado diferentes navegadores (IE y Firefox), limpiando el navegador y las memorias caché de Java, ...

¿Cómo puedo depurar o rastrear qué está haciendo el jvm para cargar nuestro applet?

Supongo que el problema radica en algunas directivas de seguridad en Windows, así que estoy usando el Monitor de procesos de Sysinternal para registrar la actividad pero realmente no sé dónde mirar.

Respuesta

0

He estado buscando en el origen del complemento desde el JDK y he encontrado que hay información de depuración adicional disponible en los registros configurando la variable de entorno JPI_PLUGIN2_DEBUG. Lamentablemente, solo veo excepciones de ClassNotFound.

he encontrado una pieza del código del plugin que se traga todas las excepciones, así que tal vez mi problema es que hay usuarios ...

6

Es probable que el caché de Java esté en mal estado. Abra Java en el Panel de control y elimine todos los archivos temporales para ver si desaparecen.

Se puede habilitar el inicio de sesión en la Consola Java para cargar applets, lo que ayuda bastante (incluso si el complemento es extremadamente críptico). Ver http://java.sun.com/javase/6/docs/technotes/guides/deployment/deployment-guide/tracing_logging.html

+0

Gracias! Olvidé habilitar el seguimiento en el entorno de prueba completo de mi disco. Ahora lo he intentado, pero solo muestra una 'java.io.IOException: Write error'. No hay detalles de qué camino estaba intentando escribir o la causa del error, por lo que creo que no proporcionará suficiente información si habilitamos el seguimiento en la PC del cliente. ¿Es este rastreo el máximo que podemos obtener de la JVM? – Serxipc

+0

¿La limpieza de la memoria caché de Java ayudó a sus usuarios? –

+0

No. Ya hemos intentado limpiar el caché de java del panel de control java y eliminar todos los archivos jar_cache * .tmp del directorio temporal.Supongo que se trata de una directiva de seguridad de Windows o de red, pero no sé por dónde continuar, así que estoy tratando de obtener un registro detallado de lo que está sucediendo. – Serxipc

0

tenían problemas similares hace un tiempo. En nuestro caso, el problema parece ser cómo se configura la etiqueta del applet en la página web. Si está en un orden incorrecto o contiene el atributo codebase, falla con 6u10 +. Esto funciona para nosotros:

<applet name="DMGANTT" archive="DMGantt.zip" code="dm.applet.DMGanttApplet" 
width='100%' height='100%' mayscript="mayscript"> 
+0

Estoy usando el script deployJava.js para escribir las etiquetas de applet y no agrego el atributo codebase. ¿Cómo pueden estar los atributos en el orden incorrecto? ¿Tiene un ejemplo que falla debido al orden de trabajo? – Serxipc

+0

Sí, si cambio el orden de código y archivo, de alguna manera 6u10 busca DMGanttApplet en el servidor y no en el archivo provisto. ¿Qué clases faltan? ¿Cuál es el rastro de la pila de su error? – akarnokd

+0

He intentado su sugerencia con el orden de los atributos, pero el problema persiste. La clase que no se encuentra en el seguimiento de la pila es la que se especifica en el atributo del código, por lo que no se ejecuta nada. Puedo ver en el registro del servidor que se solicita el jar con las clases. De hecho, el jar se solicita tantas veces como apliques hay en la página, pero cuando se ve la página desde una PC que funciona, solo se solicita una vez. – Serxipc

0

Tuvimos un problema similar con uno de nuestros clientes. Descubrimos que era un error extraño en algunas versiones de Java relacionadas con la configuración del proxy en el cliente. Consulte este artículo para obtener los detalles

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6723715

Además, nuestro subprograma falló con nuevas versiones por una razón diferente.

Ahora, en casos similares les pido que comprueben javatester.org, para que pueda ver si los applets (en general) cargan OK en su navegador. Si esa página se carga correctamente, es un problema en nuestro applet (o página). De lo contrario, es un problema en su configuración. Los ayudo de todos modos, pero es más fácil de depurar.

Cuestiones relacionadas