У меня есть апплет, который прекрасно загружается при локальном доступе (как IE, так и Firefox).
Однако, когда я помещаю свою веб-страницу в веб-сервер (локальный IPlanet), она отказывается загружаться в Firefox (но все еще хорошо в IE).
Я получаю следующую ошибку в консоли Java:
load: class XXX.localprinting.LocalPrintingApplet.class not found.
java.lang.ClassNotFoundException: XXX.localprinting.LocalPrintingApplet.class
at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source)
at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.io.IOException: open HTTP connection failed:https://XXX/test/XXX/localprinting/LocalPrintingApplet/class.class
at sun.plugin2.applet.Applet2ClassLoader.getBytes(Unknown Source)
at sun.plugin2.applet.Applet2ClassLoader.access$000(Unknown Source)
at sun.plugin2.applet.Applet2ClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
... 7 more
Exception: java.lang.ClassNotFoundException: XXX.localprinting.LocalPrintingApplet.class
[EDIT]
Включив больше трассировки в консоли Java, я на самом деле добираюсь до корневой проблемы:
network: Connecting http://ZZZ:443/ with proxy=DIRECT
security: Loading Root CA certificates from C:\Program Files\Java\jre6\lib\security\cacerts
security: Loaded Root CA certificates from C:\Program Files\Java\jre6\lib\security\cacerts
security: Loading SSL Root CA certificates from C:\Program Files\Java\jre6\lib\security\cacerts
security: Loaded SSL Root CA certificates from C:\Program Files\Java\jre6\lib\security\cacerts
security: Loading Deployment SSL certificates from C:\Documents and Settings\ZZZ\Application Data\Sun\Java\Deployment\security\trusted.jssecerts
security: Loaded Deployment SSL certificates from C:\Documents and Settings\ZZZ\Application Data\Sun\Java\Deployment\security\trusted.jssecerts
security: Loading certificates from Deployment session certificate store
security: Loaded certificates from Deployment session certificate store
security: Checking if certificate is in Deployment denied certificate store
security: Checking if certificate is in Deployment session certificate store
security: Checking if SSL certificate is in Deployment permanent certificate store
network: Connecting https://ZZZ/modules/print/applet/LocalPrinting.jar with cookie "aria_user_profile={DSƌ!,!C!"ÍÔaÃæK9eä|IC¦!A:i̤!?!7æâ!A7!*E!%!'!F"ú°!4QÎ!B:N´)!'RJ6a\IS"
network: Connecting https://ZZZ/modules/print/applet/LocalPrinting.jar with proxy=DIRECT
network: Connecting http://ZZZ:443/ with proxy=DIRECT
network: Connecting https://ZZZ/modules/print/applet/LocalPrinting.jar with cookie "aria_user_profile={DSƌ!,!C!"ÍÔaÃæK9eä|IC¦!A:i̤!?!7æâ!A7!*E!%!'!F"ú°!4QÎ!B:N´)!'RJ6a\IS"
**java.io.IOException: Server returned HTTP response code: 400 for URL: https://ZZZ/modules/print/applet/LocalPrinting.jar**
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(Unknown Source)
at sun.plugin.PluginURLJarFileCallBack.downloadJAR(Unknown Source)
at sun.plugin.PluginURLJarFileCallBack.access$000(Unknown Source)
at sun.plugin.PluginURLJarFileCallBack$2.run(Unknown Source)
Однако, используя URL https://ZZZ/modules/print/applet/LocalPrinting.jar,, я могу успешно загрузить банку.
Есть идеи, что может объяснить другое поведение веб-сервера?
Я уже исследовал вопрос «класс не найден», но не нашел ничего уместного.
Некоторая дополнительная информация:
Апплет использует файл JAR, который должен быть загружен. Тем не менее, я вижу в журналах, что он пытается загрузить файл класса
172.16.195.55 - - [10 / Июн / 2010: 11: 47: 45 +0200] "GET /XXXX/apf/init/XXXX/localprinting/LocalPrintingApplet.class HTTP / 1.1" 400 147
Работает локально (без веб-сервера) в IE / Firefox / Chrome
- Работает с Tomcat в IE / Firefox / Chrome
- Работает с Iplanet на IE / Chrome
- Не работает на Iplanet с Firefox (с или без HTTPS)
- (когда я говорю Iplanet, это Iplanet для статического контента и Weblogic для J2EE)
HTML-код, предоставленный Firefox на вкладке Firebug HTML:
<object width="0" height="0" id="eprint_printingApplet" classid="clsid:CAFEEFAC-0015-0000-FFFF-ABCDEFFEDCBA">
<param value="application/x-java-applet;version=1.5" name="type">
<param value="/modules/print/applet/LocalPrinting.jar" name="archive">
<param value="xxx.localprinting.LocalPrintingApplet.class" name="code">
<param value="true" name="mayscript">
<param value="printingApplet" name="name">
<param value="pdt1.glb.XXXX.net,pdt2.glb.XXXX.net" name="host">
<param value="10244" name="port">
<param value="" name="password">
<param value="XXXX" name="unto">
<param value="APPLET" name="env.applicationLabel">
<param value="1" name="env.applicationIndex">
<param value="6X" name="env.XXXX">
<comment>
<embed width="0" height="0" env.XXXX="6X" env.applicationindex="1" env.applicationlabel="APPLET" unto="XXXX" password="" port="10244" host="pdt1.glb.XXXX.net,pdt2.glb.XXXX.net" mayscript="true" name="printingApplet" code="XXXX.localprinting.LocalPrintingApplet.class" archive="/modules/print/applet/LocalPrinting.jar" type="application/x-java-applet;version=1.5">
<noembed>No Java Runtime Environment v5.0 support for applet installed</noembed>
</comment>