Почему я должен использовать отдельный JVM для моего апплета? - PullRequest
1 голос
/ 22 декабря 2010

Я создал апплет для автоматического набора номера контактов через нашу систему коммутации телефонных номеров, а также для регистрации информации о вызовах в нашей CRM, salesforce.Проблема, с которой я сталкиваюсь, заключается в том, что если я не использую отдельный параметр JVM, все становится чокнутым.

Например, скажем, у них открыто несколько вкладок для нескольких контактов, таким образом, несколько апплетов работают в одном и том же jvm.Без отдельного параметра jvm иногда он будет набирать номер из другой вкладки.Я передаю число через теги параметров, и я даже попытался передать число, вызвав метод JS из апплета, но безуспешно.

Поскольку наш crm основан на облаке, людям нравится открывать несколько вкладок, но им не нравится видеть несколько значков Java ниже, переходите к рисунку.Кто-нибудь имел эту проблему раньше, и / или есть обходной путь без отдельных jvms.

Ответы [ 2 ]

3 голосов
/ 22 декабря 2010

Трудно сказать, не глядя на код вашего апплета.

Но я бы рискнул предположить, что ваш код помещает часть своего изменчивого состояния в статику, и иногда один экземпляр апплета мешает другому через статику.

Если в вашем апплете есть какие-либо изменяемые статические переменные, в идеале вы должны избавиться от них. Или, если состояние действительно должно совместно использоваться несколькими экземплярами апплета, убедитесь, что все обращения синхронизированы должным образом.

1 голос
/ 22 декабря 2010

Статики являются общими для апплетов, так как все они работают в одной и той же виртуальной машине.Вы можете попробовать classloader_cache="false" параметр апплета и по-прежнему использовать виртуальную машину.Однако я не уверен, применима ли эта опция только при запуске апплета, поскольку у меня не было успеха, когда она все время работала.

Лучше всего избавиться от статики или использовать отдельный_jvm.

...