Pour une affectation de programmation, j'essaie de faire en sorte qu'un serveur GlassFish serve une applet client pour communiquer avec le servlet serveur. J'ai été bloqué sur avoir GlassFish livrer l'applet. J'ai beaucoup cherché sur ce sujet, et je ne trouve rien qui résout le problème - même si j'apprends beaucoup.L'applet ne fonctionnera pas à partir de GlassFish, valeur magique incompatible. Fonctionne très bien à partir du serveur Web OS X
J'ai une applet 'hello world' compilée à tskApplet.class.
import java.applet.Applet;
import java.awt.*;
public class tskApplet extends Applet {
public void paint (Graphics g) {
g.drawString("Hello world! It's an applet!", 5, 25);
}
}
J'ai une page html qui charge l'applet avec la balise applet suivante:
<applet code = "tskApplet.class" width="300" height="300"></applet>
J'ai essayé (sans succès) toutes sortes de variantes telles que mettre le fichier .class J'utilise IntelliJ et si j'exécute tskApplet à partir d'une configuration d'exécution/de débogage d'applet, cela fonctionne bien. J'ai suivi ce guide pour configurer GlassFish avec ImtelliJ: http://wiki.jetbrains.net/intellij/Developing_applications_for_GlassFish_Server_in_IntelliJ_IDEA
Si je copie exactement le même fichier .class et le même fichier .html depuis le répertoire web du serveur GlassFish vers le dossier OS X Sites, l'applet fonctionne correctement depuis le navigateur quand j'y accède de cette façon. Mais si je lance GlassFish et accède à mon application Web, l'applet ne fonctionne pas. Au lieu de cela, je reçois ces erreurs dans la console Java du navigateur:
java.lang.ClassFormatError: Incompatible magic value 1768779887 in class file tskApplet
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at sun.plugin2.applet.Applet2ClassLoader.findClass(Applet2ClassLoader.java:219)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Plugin2ClassLoader.java:249)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Plugin2ClassLoader.java:179)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Plugin2ClassLoader.java:160)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Plugin2ClassLoader.java:674)
at sun.plugin2.applet.Plugin2Manager.createApplet(Plugin2Manager.java:2990)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Plugin2Manager.java:1481)
at java.lang.Thread.run(Thread.java:680)
Des suggestions où chercher?
Fonctionne également très bien avec Tomcat. –