Tengo problemas para obtener un Applet de Java que se comunique con el código de Javascript en la página en la que se aloja el applet. Funciona a veces, pero a veces arroja una excepción oscura, que Google no ha encontrado ninguna información útil, además de algunos informes de errores de Java que nunca se resolvieron (gracias Sun).Problema con Java Applet <--> Comunicación de Javascript
Aquí está el código que estoy utilizando:
JSObject win = JSObject.getWindow(this);
Object[] args = new Object[1];
args[0] = "test argument";
String result = (String) win.call("testJSfunc", args); // XXX
Aquí es la excepción consigo en la línea marcada // XXX. Tenga en cuenta que es intermitente. A menudo funciona, pero a veces no funciona, usando el mismo código exacto. Volver a cargar la página repetidamente producirá el error bastante rápido.
netscape.javascript.JSException: No registered plugin for applet ID 1
at sun.plugin2.main.client.MessagePassingJSObject.newJSException(Unknown Source)
at sun.plugin2.main.client.MessagePassingJSObject.waitForReply(Unknown Source)
at sun.plugin2.main.client.MessagePassingJSObject.call(Unknown Source)
at TestApplet.testCallJS(TestApplet.java:159)
at TestApplet.init(TestApplet.java:139)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
¿Existe alguna otra forma más estable de comunicación entre Java y Javascript que debería estar utilizando?
--- --- Más información
estoy usando el guión deployJava.js lo dispuesto por Sun para incrustar el applet sobre la marcha. Me aseguré de que MAYSCRIPT esté habilitado. Sé que no es un problema con MAYSCRIPT, porque la comunicación funciona algunas veces.
¿Está usando la etiqueta de applet para incrustarlo? – Enrique