К одной и той же DLL обращаются два апплета в 2 веб-приложениях

Мне нужно предложение для решения следующей проблемы.

У меня есть два веб-приложения (скажем, WEBAPP-A и WEBAPP-B), работающие на одном сервере приложений. Каждая страница входа на каждой странице приложения активирует определенный апплет (назовем их JAPP-A и JAPP-B соответственно). Эти два апплета должны использовать одну и ту же DLL.

Каждый апплет (JAPP-A или JAPP-B) работает нормально при отдельном доступе к приложению (в нашем случае используется браузер Internet Explorer 8.0, а версия клиента JRE — 1.7.0_45). Однако при перенаправлении с WEBAPP-A на WEBAPP-B происходит сбой апплета JAPP-B.

Я получаю сообщение об ошибке:

UnsatisfiedLinkError: 'DLL already loaded in another classloader'

Поэтому я попытался использовать один и тот же загрузчик классов для JAPP-A и JAPP-B, установив одно и то же значение CODEBASE внутри тега апплета и развернув JAR, содержащий код JAPP-B, по пути CODEBASE, но мы получили то же сообщение об ошибке.

Может ли кто-нибудь предложить альтернативный подход для правильной работы апплета JAPP-B?


person bandolero    schedule 14.01.2014    source источник


Ответы (1)


Разверните каждый апплет на собственной виртуальной машине Java. НАПРИМЕР. из Параметры развертывания апплета: separate_jvm.

<APPLET archive="my_applet.jar" code="MyApplet" width="300" height="300">
    <PARAM name="java_arguments" value="...">
    <!-- use a separate JVM for this applet! -->
    <PARAM name="separate_jvm" value="true">
</APPLET>
person Andrew Thompson    schedule 14.01.2014
comment
Также было бы полезно изучить возможность запуска апплетов с помощью JNLP/Java Web Start, поскольку это значительно упрощает развертывание нативных программ. - person Andrew Thompson; 14.01.2014
comment
Итак, это решило проблему для вас? Ты пока думаешь об этом? - person Andrew Thompson; 14.01.2014