2012-01-08 13 views
5

He asumido el mantenimiento de una aplicación web anterior, que usa varios applets incrustados en la misma página web. Esto solía funcionar bien, pero dado que se introdujo el complemento de Java de próxima generación (~ 1.6.0_10), no se garantiza que los applets individuales se carguen en la misma instancia de JVM. Si se cargan en diferentes JVM, no pueden comunicarse a través de AppletContext.getApplets() ni a través de variables estáticas.¿Se deben cargar los applets en la misma instancia de JVM?

¿Hay alguna manera de forzar a los applets a cargar en la misma instancia de JVM? Vi una solución alternativa mencionada donde especificar el parámetro 'java_arguments' idéntico puede alentar al plugin de Java a ejecutar applets en la misma instancia de JVM, pero esto no funciona para nuestra aplicación (y en cualquier caso no es oficialmente compatible con Oracle y por lo tanto puede desaparecer tiempo en cualquier caso).

También hemos intentado reemplazar la comunicación directa de applet a applet con comunicación indirecta de applet a JavaScript a applet, pero no podemos utilizar este enfoque ya que nuestros clientes usan versiones antiguas de navegador web que evitan que esto ocurra. trabajando. Me gustaría evitar enrutar todas las comunicaciones locales de applet a applet a través de un servidor no local, si es posible.

+0

Todos estarían en la misma JVM si un "applet de controlador" los cargó a los cuatro en áreas separadas de su propio panel de contenido. ¿Por qué los applets deben estar integrados en una página web? –

+0

Necesitan estar incrustados en la página ya que cada applet proporciona parte del contenido de la página, pero separados por otros elementos de contenido web 'normal'. No es un diseño brillante, ciertamente, pero es el que tenemos. Espero reemplazar todos los applets con equivalentes JS eventualmente, pero tendré que hacer este applet a la vez. – jmt

+0

También pensé que el enfoque de Andrew Thompson podría ser posible ... Cargue el applet del controlador, cargue los sub-applets, cargue el contenido de la página en un panel que represente el contenido web normal. ¿Tienes algún control sobre ese otro contenido, el diseño de página, etc.? Indique cualquier otra restricción que debemos imponer o relajar, no importa qué tan obtuso :) De lo contrario, si no está explícitamente cubierto por http://www.java.net/node/695065, puede ser SoL. – ccoakley

Respuesta

1

Tuvimos un problema similar y lo solucionamos al deshabilitar el complemento de Java de "próxima generación" en el panel de control de Java.

+1

Gracias; simplemente intenté eso, y pareció forzar todo en una máquina virtual. No obstante, no creo que podamos forzar a nuestros clientes a hacer esto, ya que están distribuidos en una variedad de organizaciones y tienen estaciones de trabajo bloqueadas. Por lo menos, ahora tenemos una solución de último recurso que podemos recomendar a los clientes. Si escuchas algún otro método que no requiera que el usuario cambie la configuración, me gustaría saberlo, ya que sería mucho más fácil venderlo. – jmt

Cuestiones relacionadas