2012-01-08 10 views
5

Przejąłem konserwację starej aplikacji internetowej, która używa wielu apletów osadzonych na tej samej stronie internetowej. To działało dobrze, ale ponieważ wprowadzono wtyczkę Java nowej generacji (~ 1.6.0_10), poszczególne aplety nie są gwarantowane do załadowania w tej samej instancji JVM. Jeśli ładują się w różnych maszynach JVM, nie mogą komunikować się za pośrednictwem AppletContext.getApplets() lub za pośrednictwem zmiennych statycznych.Aplety siły do ​​załadowania w tej samej instancji JVM?

Czy istnieje sposób zmuszenia apletów do załadowania w tej samej instancji JVM? Widziałem wspomniane obejście, w którym określenie identycznego parametru "java_arguments" może zachęcić wtyczkę Java do uruchamiania apletów w tej samej instancji JVM, ale to nie działa dla naszej aplikacji (w każdym razie nie jest oficjalnie wspierane przez Oracle i dlatego może znikać czas w każdym przypadku).

Próbowaliśmy również zastąpić bezpośrednią komunikację aplet-aplet z pośrednią komunikacją aplet-to-JavaScript-aplet, ale nie możemy tego użyć, ponieważ nasi klienci używają starych wersji przeglądarek internetowych, które zapobiegają temu pracujący. Chciałbym uniknąć routowania całej lokalnej komunikacji między apletami i apletami przez serwer nielokalny, jeśli w ogóle jest to możliwe.

+0

Wszystkie byłyby w tej samej maszynie JVM, gdyby jeden "applet kontrolera" załadował wszystkie cztery z nich do oddzielnych obszarów własnego panelu zawartości. Dlaczego aplety muszą być osadzone na stronie internetowej? –

+0

Muszą one być osadzone na stronie, ponieważ każdy aplet zawiera część treści strony, ale jest oddzielony od innych elementów "normalnej" zawartości internetowej. Niezbyt błyskotliwy projekt, ale to ten, który mamy. Mam nadzieję, że w przyszłości zastąpię wszystkie aplety odpowiednikami JS, ale będę musiał wykonać ten jeden aplet jednocześnie. – jmt

+0

Sądziłem też, że podejście Andrew Thompsona może być możliwe ... Załaduj aplet kontrolera, załaduj pod-aplety, załaduj zawartość strony do panelu, który renderuje normalną treść internetową? Czy masz kontrolę nad innymi treściami, układem strony itp.? Proszę wymienić wszelkie inne ograniczenia, które musimy nałożyć lub możemy się zrelaksować, bez względu na to, jak nieporadne :) W przeciwnym razie, jeśli nie jesteś jawnie objęty http://www.java.net/node/695065, możesz być SoL. – ccoakley

Odpowiedz

1

Mieliśmy podobny problem i pracowaliśmy nad nim poprzez wyłączenie wtyczki Java nowej generacji w panelu sterowania Java.

+1

Dzięki; próbowałem tego i wydawało się, że wszystko wymusza na jedną wirtualną maszynę. Nie sądzę, że będziemy w stanie zmusić naszych klientów, aby to zrobili, ponieważ są oni rozmieszczeni w wielu organizacjach i mają zablokowane stacje robocze. Przynajmniej mamy teraz rozwiązanie tymczasowe, które możemy polecić klientom. Jeśli słyszysz o innych metodach, które nie wymagają zmiany ustawień przez użytkownika, chciałbym wiedzieć, ponieważ znacznie łatwiej byłoby to sprzedać. – jmt

Powiązane problemy