gpt4 book ai didi

java - Applet 不会从 GlassFish 运行,魔法值不兼容。从 OS X Web 服务器运行良好

转载 作者:太空宇宙 更新时间:2023-11-04 08:45:49 24 4
gpt4 key购买 nike

对于一项编程作业,我试图让 GlassFish 服务器提供一个客户端小程序来与服务器 servlet 对话。我一直坚持让 GlassFish 交付小程序。我对此进行了广泛的搜索,但没有找到任何可以解决该问题的东西 - 尽管我学到了很多东西。

我有一个编译为 tskApplet.class 的“hello world”小程序。

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 code = "tskApplet.class" width="300" height="300"></applet>

我尝试了(无济于事)各种变体,例如将 .class 文件放入 .jar 中并在 applet 标记中包含 archive="tskApplet.jar"以及使用 .jsp 页面等。

我正在使用 IntelliJ,如果我从小程序运行/调试配置运行 tskApplet,它可以正常工作。我按照本指南使用 ImtelliJ 设置 GlassFish:http://wiki.jetbrains.net/intellij/Developing_applications_for_GlassFish_Server_in_IntelliJ_IDEA

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

但是,如果我运行 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 运行的 JVM 比编译 Applet 时使用的 JVM 更旧。找出服务器正在运行的 JVM。

关于java - Applet 不会从 GlassFish 运行,魔法值不兼容。从 OS X Web 服务器运行良好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4375266/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com