PDA

View Full Version : [JAVA]Non carica l'Applet


sonic85
13-11-2009, 15:16
Ciao a tutti,
ho un grosso problema... ho sviluppato un programmino in java abbastanza complesso con l'utilizzo di dispositivo tramite porta seriale per la lettura di dispositivi RFID.
Ora vorrei creare un'applet per utilizzare questo programmino, ma purtroppo non riesco a visualizzare l'applet e mi esce questo errore:


java.lang.NoClassDefFoundError: RFIDapplet (wrong name: rfidjava/RFIDapplet)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
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)
Eccezione: java.lang.NoClassDefFoundError: RFIDapplet (wrong name: rfidjava/RFIDapplet)


C'è qualcuno così gentile che mi può aiutare a venirne a capo??:help: :help: :help: :help: :help: :help:

PGI-Bis
09-12-2009, 21:43
Nel file html controlla il nome dell'applet (attributo code). Devi specificare il nome pienamente qualificato della classe e non quello semplice:

applet code="rfidjava.RFIDapplet" eccetera

^TiGeRShArK^
09-12-2009, 23:23
mmm...
più che altro ad occhio mi sa che non c'è corrispondenza tra il nome del package e il context del web server...
infatti gli dice che il qualified name "wrong name: rfidjava/RFIDapplet" è sbagliato...
che web server usi?
dove hai messo la tua applet?
usi un .jar o un .class?
Occhio che se necessiti di leggere da seriale, ammesso che azzecchi il giusto context su apache o sul web server che usi, mi sa che devi mettere l'applet in un jar e firmarla perchè altrimenti non avrai i permessi necessari all'esecuzione...

sonic85
10-12-2009, 07:33
Alla fine sono riuscito a sistemare il tutto!

mancava nell'invocazione dell'applet dalla pagina html devono esserci sia l'attributo Code con il file .class che l'attributo Archive con il file Jar firmato.
Io invece avevo usavo solo l'attributo Archive!:doh:

Però ho un'altro casino e spero l'ultimo che ho descritto qui (http://www.hwupgrade.it/forum/showthread.php?t=2087396):

Intanto vi ringrazio infinitamente! :D

Player1
19-02-2010, 14:33
Ciao a tutti, ho un problema analogo con una applet di prova semplicissima:

Uso un server apache 2.2.13.
Nella cartella D:\applet sono contenuti i 2 file connectionApplet.class e index.html
Il file index html ha solo questo tag nel body:

<applet code="connectionApplet.class"></APPLET>

Quando richiamo da firefox la pagina con "http://localhost" il file index.html viene trovato ma l'applet al suo interno da questo errore:
java.lang.NoClassDefFoundError: connectionApplet (wrong name: applet/connectionApplet)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(Unknown Source)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
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)
Eccezione: java.lang.NoClassDefFoundError: connectionApplet (wrong name: applet/connectionApplet)

Come posso risolverlo?

PGI-Bis
19-02-2010, 14:46
Il messaggio:

(wrong name: applet/connectionApplet)

dice che la tua applet non si chiama connectionApplet ma applet.connectionApplet. Metti

code="applet.connectionApplet.class"

Per dovere di cronaca, quel "applet." salta fuori dal package della classe connectionApplet. In breve se l'unità di compilazione di una classe contiene una dichiarazione di package:

package pippo;

public class Classe {...}

Classe ha due nomi, uno detto semplice, Classe, e uno detto pienamente qualificato, pippo.Classe (cioè package.NomeSemplice).

Player1
19-02-2010, 15:15
Il messaggio:

(wrong name: applet/connectionApplet)

dice che la tua applet non si chiama connectionApplet ma applet.connectionApplet. Metti

code="applet.connectionApplet.class"

Per dovere di cronaca, quel "applet." salta fuori dal package della classe connectionApplet. In breve se l'unità di compilazione di una classe contiene una dichiarazione di package:

package pippo;

public class Classe {...}

Classe ha due nomi, uno detto semplice, Classe, e uno detto pienamente qualificato, pippo.Classe (cioè package.NomeSemplice).

Funziona, grazie mille! :)