簡體   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