апплет не загружается - PullRequest
       13

апплет не загружается

0 голосов
/ 05 января 2010

У нас есть устаревшая программа, которая была перенесена с Java 1.3 на Java 1.5. Это приложение включает в себя апплеты, которые работали хорошо раньше. Однако после портирования апплет не загрузится. Однако нет никаких ошибок или исключений. Приложение будет пытаться загрузить его навсегда. Мы попытались запустить его с Java 1.6 и poof! Никаких проблем вообще. Разве Java 6 не поддерживает обратную совместимость? Так почему же он будет работать в этой версии, а не в 1.5?

====

Журнал консоли Java для Java 1.5.0_19

basic: Registered modality listener
basic: Registered modality listener
basic: Registered modality listener
liveconnect: Invoking JS method: document
liveconnect: Invoking JS method: document
liveconnect: Invoking JS method: document
liveconnect: Invoking JS method: URL
liveconnect: Invoking JS method: URL
liveconnect: Invoking JS method: URL
basic: Referencing classloader: sun.plugin.ClassLoaderInfo@bb7759, refcount=1
basic: Referencing classloader: sun.plugin.ClassLoaderInfo@bb7759, refcount=2
basic: Referencing classloader: sun.plugin.ClassLoaderInfo@bb7759, refcount=3
basic: Added progress listener: sun.plugin.util.GrayBoxPainter@b0bad7
basic: Loading applet ...
basic: Initializing applet ...
basic: Starting applet ...
basic: Added progress listener: sun.plugin.util.GrayBoxPainter@ba9340
basic: Added progress listener: sun.plugin.util.GrayBoxPainter@1198891
basic: Loading applet ...
basic: Initializing applet ...
basic: Starting applet ...
basic: Loading applet ...
basic: Initializing applet ...
basic: Starting applet ...
basic: Referencing classloader: sun.plugin.ClassLoaderInfo@bb7759, refcount=4
basic: Releasing classloader: sun.plugin.ClassLoaderInfo@bb7759, refcount=3
basic: Referencing classloader: sun.plugin.ClassLoaderInfo@bb7759, refcount=4
basic: Releasing classloader: sun.plugin.ClassLoaderInfo@bb7759, refcount=3
basic: Referencing classloader: sun.plugin.ClassLoaderInfo@bb7759, refcount=4
basic: Releasing classloader: sun.plugin.ClassLoaderInfo@bb7759, refcount=3
network: Connecting <something>.jar with proxy=HTTP @ proxy/<ip address>
basic: Loading <something>.jar from cache
basic: No certificate info, this is unsigned JAR file.
Left START init()
Left END init()
Right START init()
Control start() Waiting for Left Panel to load...
Right START start()
network: Connecting socket://<ip address>:14444 with proxy=DIRECT
Control start() Waiting for Left Panel to load...
Control start() Waiting for Left Panel to load...
Control start() Waiting for Left Panel to load...
my HostName : <ip address>
Thread-19 Check : 
Thread-19 Check : Monitor : run : start
Thread-20 Monitor : Monitor: run() start
Control start() Waiting for Left Panel to load...
Control start() Waiting for Left Panel to load...
Control start() Waiting for Left Panel to load...
Control start() Waiting for Left Panel to load...
Control start() Waiting for Left Panel to load...
Control start() Waiting for Left Panel to load...

последнее сообщение продолжается вечно ... и теперь с рабочей версией:

====

Журнал консоли Java для Java 1.6.0_15

basic: Added progress listener:   sun.plugin.util.GrayBoxPainter$GrayBoxProgressListener@1b000e7
basic: Added progress listener: sun.plugin.util.GrayBoxPainter$GrayBoxProgressListener@12611a7
basic: Added progress listener: sun.plugin.util.GrayBoxPainter$GrayBoxProgressListener@1807ca8
network: CleanupThread used 6 us
network: CleanupThread used 5 us
network: CleanupThread used 6 us
cache: Skip blacklist check as cached value is ok.
network: Cache entry found [url: <something>.jar, version: null]
network: Connecting <something>.jar with proxy=HTTP @ proxy/<ip address>
network: ResponseCode for <something>.jar : 304
network: Encoding for <something>.jar : null
network: Disconnect connection to <something>.jar
Reading certificates from 11 <something>.jar | <something>.idx
network: No certificate info for unsigned JAR file: <something>.jar
basic: Applet loaded.
basic: Applet loaded.
basic: Applet resized and added to parent container
basic: Applet resized and added to parent container
basic: PERF: AppletExecutionRunnable - applet.init() BEGIN ; jvmLaunch dt 330275 us, pluginInit dt 27768955 us, TotalTime: 28099230 us
Right START init()
basic: PERF: AppletExecutionRunnable - applet.init() BEGIN ; jvmLaunch dt 330275 us, pluginInit dt 27770563 us, TotalTime: 28100838 us
Left START init()
basic: Applet loaded.
basic: Applet resized and added to parent container
basic: PERF: AppletExecutionRunnable - applet.init() BEGIN ; jvmLaunch dt 330275 us, pluginInit dt 27779332 us, TotalTime: 28109607 us
Left END init()
basic: Applet initialized
basic: Removed progress listener: sun.plugin.util.GrayBoxPainter$GrayBoxProgressListener@12611a7
basic: Applet made visible

И это все. До сих пор не выяснил, почему он работает с java6, а не с java5.


@ valli: использовался тег объекта, а не апплет

@ thorbjorn: я уже пробовал ... он просто продолжает загружать апплет ...

@ aaron: как я могу узнать, что это за исключение, если оно действительно есть? и да, мы считали, что это ошибка Java, но я до сих пор не нашел, что это за ошибка. я должен представить отчет завтра, и я искал сеть, но пока ничего не придумал ...

@ all: спасибо за ваши ответы

Ответы [ 4 ]

0 голосов
/ 05 января 2010

Java 6 обратно совместима с Java 5, но это просто означает, что апплеты, которые работают под Java 5, также работают с Java 6. Ваш апплет работает с Java 6, который ничего не говорит о том, должен ли он работать с Java 5. Есть очевидно, новые функции в Java 6, которые недоступны при работе под Java 5.

Если в вашем коде используется какой-то класс, который доступен только в Java 6, я бы ожидал увидеть ClassDefNotFoundError или ClassNotFoundException в Java 5. Тем не менее, возможно, что где-то в вашем коде вы перехватываете и молча проглатываете исключения , Ищите любые пустые блоки catch или слишком широкие блоки catch (то есть перехват исключений или Throwable вместо чего-то более конкретного). Если код является многопоточным, рассмотрите возможность добавления необработанных обработчиков исключений в каждый поток, чтобы регистрировать любые проблемы.

Кроме этого, запустите апплет в (JDK 5) Applet Viewer и подключите отладчик, чтобы попытаться определить местоположение проблемы.

РЕДАКТИРОВАТЬ: Вы создали апплет с JDK5? Это высветило бы любые проблемы с совместимостью. Если вы строите с помощью JDK 6, по крайней мере, установите компилятор для генерации Java 5 байт-кода. Но желательно, чтобы вы также строили против классов JDK 5 (либо с помощью JDK 5, либо с помощью опции -bootclasspath с JDK 6), чтобы вы могли видеть, используете ли вы что-то, чего нет в нем.

0 голосов
/ 05 января 2010

Одна из возможных проблем заключается в том, что если ваш апплет встроен в html-страницу с помощью тега «applet», то его необходимо изменить, чтобы использовать тег «object», поскольку тег «applet» устарел.

0 голосов
/ 05 января 2010

Включите консоль Java, а также ВСЕ данные трассировки / отладки в консоли.

Затем попробуйте перезагрузить апплет и посмотрите, что он говорит.

0 голосов
/ 05 января 2010

Возможно, где-то есть исключение, но вы его не видите (возможно, оно проглочено). Или это ошибка в вашей версии Java 5, которая была исправлена ​​в Java 6.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...