PDA

View Full Version : [Java] Applet non visualizzata su Internet Explorer


ficuste
20-04-2010, 09:30
Ciao a tutti, riporto un problema che forse qualcuno ha già avuto: ho un'applet Java che crea un menu popup che viene visualizzata su qualunque browser tranne che se Internet Explorer (nessuna versione). L'errore che mi dà la consolle Java è "java.lang.ClassNotFoundException: apPopupMenu.class" anche se poi dice

"Caused by: java.io.IOException: open HTTP connection failed:http://oramid:7777/casting/applet/apPopupMenu/class.class"

Le ho provate tutte, ho aggiornato la JDK, ho messo le impostazioni di sicurezza al minimo, ... ma niente. Qualcuno può darmi una mano?

P.S.: su Firefox e Chrome, dopo che ho aggiornato la JDK all'ultima versione, mi dice che per eseguire la Applet deve utilizzare una versione precedente... io clicco su "Esegui" e l'applet funziona.

PGI-Bis
20-04-2010, 14:10
Indagherei su questa stringa:

"http://oramid:7777/casting/applet/apPopupMenu/class.class"

Come testimoniato dall'eccezione:

"java.lang.ClassNotFoundException: apPopupMenu.class"

C'è un ".class" di troppo. L'eccezione infatti dovrebbe dire:

"java.lang.ClassNotFoundException: apPopupMenu"

E la stringa di connessione essere:

"http://oramid:7777/casting/applet/apPopupMenu.class"

ficuste
20-04-2010, 16:17
Ho tolto il ".class" nel tag <applet>:


<applet Code="apPopupMenu" codebase="applet" Width="100" Height="18" MAYSCRIPT>


e mi dà lo stesso errore, esattamente come lo hai scritto tu:

java.lang.ClassNotFoundException: apPopupMenu
[...]
Caused by: java.io.IOException: open HTTP connection failed:http://oramid:7777/casting/applet/apPopupMenu.class

PGI-Bis
20-04-2010, 16:55
Se la classe aPopupMenu.class è in archivio jar, aggiungi l'archivio con l'attributo archive di applet.

<applet ... archive="iljar.jar" ..

ficuste
22-04-2010, 10:21
Il file .class è in una directory e non in un .jar... comunque mi sa che è un problema di Internet Explorer perchè nessuna applet viene visualizzata!!!

PGI-Bis
22-04-2010, 12:48
Per controllare se IE ha il plug-in java, menu strumenti di ie -> opzioni internet -> avanzate -> controlla se hai una voce "Java (Sun)" e se la casella sottostante è spuntata.

ficuste
22-04-2010, 13:52
La voce "Java (Sun)" è spuntata. Credo comunque sia un problema di versione della JDK: in pratica dovrei "dire" a Explorer (o comunque a tutti i browser) di far girare le applet con una versione di Java precedente (attualmente ho la 1.6)... come si fa?

PGI-Bis
22-04-2010, 14:02
Di norma non è un problema perchè i JRE di versione maggiore sono sempre in grado di eseguire programmi scritti per JRE di versione minore.

Ti funziona questa applet in IE?

http://www.tukano.it/slideapplet.html

ficuste
22-04-2010, 14:39
Sì funziona!!! (Molto bella tra l'altro :D )
Altro tentativo: forse è come è richiamata nel codice html che non va bene (premetto che non l'ho scritta io...):

<applet Code="apPopupMenu.class" codebase="applet" Width="110" Height="18" MAYSCRIPT>

PGI-Bis
22-04-2010, 14:46
Mah, non vedo nulla di sbagliato in quella riga. Se togli "codebase" che succede?

Prova a creare una cartella vuota, "test", e piazza i file così:

test\pagina html
test\apPopupMenu.class

senza quel codebase (che francamente non ricordo cosa faccia).

ficuste
22-04-2010, 15:11
mmm proverò a fare come dici, mi sa che oggi non riesco, domani provo e ti faccio sapere (a proposito, grazie dell'aiuto!)

Comunque "codebase" indica la cartella dove si trova il .class. Invece che fa "MAYSCRIPT"? Non ne ho la più pallida idea! :confused:

ficuste
23-04-2010, 08:29
Ho provato (in locale e non sul server) a mettere pagina html e applet nella stessa cartella e a togliere "codebase" dal tag... e funziona bene su IE. Ho provato a fare la stessa cosa sul server ma niente... mi dà sempre lo stesso errore. Le ho provate tutte... a questo punto penso sia o un problema di versione Java (ma come mi dicevi tu i JRE di versione maggiore sono sempre in grado di eseguire programmi scritti per JRE di versione minore) oppure un problema di permission, perchè l'errore che dà è

Caused by: java.io.IOException: open HTTP connection failed:http://oramid:7777/casting/applet/apPopupMenu.class