繁体   English   中英

Applet不会从GlassFish(不兼容的魔术值)运行。 从OS X Web服务器正常运行

[英]Applet won't run from GlassFish, Incompatible magic value. Runs fine from OS X web server

对于编程任务,我试图让GlassFish服务器提供一个客户端小程序来与服务器Servlet进行通信。 我一直在让GlassFish交付applet。 我已经对此进行了广泛的搜索,但是没有找到能解决该问题的任何东西-尽管我学到了很多东西。

我有一个“ hello world”小程序,已编译为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);
    }
}

我有一个html页面,其中加载了带有以下applet标签的applet:

<applet code = "tskApplet.class" width="300" height="300"></applet>

我已经尝试(无济于事)各种变体,例如将.class文件放在.jar中,并在applet标签中包含archive =“ tskApplet.jar”,并使用.jsp页面等。

我正在使用IntelliJ,并且如果我从applet运行/调试配置运行tskApplet,则可以正常运行。 我按照该指南使用ImtelliJ设置了GlassFish: http ://wiki.jetbrains.net/intellij/Developing_applications_for_GlassFish_Server_in_IntelliJ_IDEA

如果我从GlassFish服务器的Web目录中将完全相同的.class文件和.html文件复制到OS X Sites文件夹,那么当我以这种方式访问​​该applet时,它可以在浏览器中正常工作。

但是,如果我运行GlassFish并访问我的Web应用程序,则该小程序无法运行。 相反,我在浏览器Java控制台中得到了以下错误:

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)

有什么建议下一步要看吗?

听起来GlassFish正在使用比Applet编译时更早的JVM运行。 找出服务器正在运行的JVM。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM