2009-07-23 3 views
9

Недавно два наших клиента сообщили о проблемах с нашими апплетами. Глядя на консоль java plugin, она заполнена ClassNotFoundException, поэтому ни один из наших кодов не выполняется.Как отлаживать/регистрировать/отслеживать проблему загрузки апплетов?

Я смог воспроизвести трассировку стека с помощью виртуального изображения ПК с 0 свободным пространством на диске, но проблема исчезает при восстановлении некоторого дискового пространства, и пользователи сообщают мне, что их диск не заполнен; они могут создавать новые файлы.

Для нашего апплета требуется Java 6, и проблема появилась с обновлениями 1, 10 и 14 из jre. Мы также пробовали разные браузеры (IE и Firefox), очищая браузер и java-кеши, ...

Как я могу отлаживать или отслеживать, что делает jvm для загрузки нашего апплета?

Я полагаю, что проблема заключается в некоторой директиве безопасности на окнах, поэтому я использую монитор процессов Sysinternal для регистрации активности, но я действительно не знаю, где искать.

ответ

0

Я смотрел источник плагина из JDK, и я обнаружил, что в журналах есть дополнительная информация об отладке, в которой задана переменная окружения JPI_PLUGIN2_DEBUG. К сожалению, я до сих пор вижу только исключения ClassNotFound.

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

6

Кэш Java, скорее всего, испортился. Откройте Java в панели управления и избавьтесь от всех временных файлов, чтобы узнать, не исчезнет ли она.

Вход в консоль Java для загрузки апплетов может быть включен, что очень помогает (даже если плагин является чрезвычайно загадочным). См. http://java.sun.com/javase/6/docs/technotes/guides/deployment/deployment-guide/tracing_logging.html

+0

Спасибо! Я забыл включить трассировку на моем тестовом окружении. Теперь я пробовал, но он показывает только «java.io.IOException: Write error». Нет никакой информации о том, какой путь пытался написать или причиной ошибки, поэтому я думаю, что он не даст достаточной информации, если мы включим отслеживание на клиентском компьютере. Является ли это трассировкой максимум, который мы можем получить от JVM? – Serxipc

+0

Помогла ли вам очистка кеша java для пользователей? –

+0

Нет. Мы уже пробовали очистить кэш java с панели управления java и удалить все файлы jar_cache * .tmp из каталога temp.Я полагаю, что это некоторые директивы по защите окон или сети, но я не знаю, где продолжить, поэтому я пытаюсь получить подробный журнал того, что происходит. – Serxipc

0

были подобные проблемы давно. В нашем случае проблема заключается в том, как тег апплета настроен на веб-странице. Если он находится в неправильном порядке или содержит атрибут codebase, он не работает с 6u10 +. Это работает для нас:

<applet name="DMGANTT" archive="DMGantt.zip" code="dm.applet.DMGanttApplet" 
width='100%' height='100%' mayscript="mayscript"> 
+0

Я использую скрипт deployJava.js для написания тегов апплета, и мы не добавляем атрибут codebase. Как атрибуты могут быть в неправильном порядке? У вас есть пример, который терпит неудачу из-за заказа worng? – Serxipc

+0

Да, если я изменю порядок кода и архив, как-то 6u10 ищет DMGanttApplet на сервере, а не в архиве. Какие классы отсутствуют - какова трассировка стека вашей ошибки? – akarnokd

+0

Я попробовал ваше предложение с порядком атрибутов, но проблема не устранена. Класс, не найденный в трассировке стека, тот, который указан в атрибуте кода, поэтому ничего не выполняется. В журнале сервера я вижу, что запрашивается банка с классами. Фактически, банку запрашивается столько раз, сколько апплеты есть на странице, но при просмотре страницы с компьютера, который работает, он запрашивается только один раз. – Serxipc

0

У нас была аналогичная проблема с одним из наших клиентов. Мы обнаружили, что это была странная ошибка в некоторых версиях Java, связанных с конфигурацией прокси-сервера на клиенте. Смотрите эту статью для деталей

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6723715

Кроме того, наш апплет не удалось с новыми версиями по другой причине.

Теперь, в подобных случаях я прошу их проверить javatester.org, чтобы я мог видеть, будут ли апплеты (в общем) загружаться в своем браузере. Если эта страница загружается нормально, это проблема с нашим апплетом (или страницей). Иначе это проблема в их конфигурации. Я помогаю им в любом случае, но его легче отлаживать.

Смежные вопросы