ClassFormatError - 不兼容的魔术值

时间:2013-12-11 12:06:24

标签: java java-ee applet jsessionid

我尝试在我的网络应用程序中使用applet。

Applet类:

public class TestApplet extends JApplet {

    @Override
    public void init() {
        try {
            System.out.println("Applet!");
            SwingUtilities.invokeAndWait(new Runnable() {
                @Override
                public void run() {
                    JLabel lbl = new JLabel("Hello World");
                    add(lbl);
                }
            });
        } catch (Exception e) {
            System.err.println("createGUI didn't complete successfully");
        }
    }
}

在JSP中:

<applet code="TestApplet.class" width="320" height="120" ></applet>

但是当我在加载applet后加载页面时,我收到此错误。

ClassFormatError - Incompatible magic value 168430090 in class file TestApplet.

在我的应用程序中,我使用Spring Security - 如果它是相关的。

1 个答案:

答案 0 :(得分:1)

在服务器发回错误页面或登录页面而不是jar / class文件之前,我已经看到过这个错误。您可以使用fiddler之类的内容来查看您的网络服务器实际发送回您的浏览器的内容,您应该能够看到它发回的内容。现在很多appservers在他们的cookie上设置了httpOnly = true,而java浏览器插件中的一个错误意味着它在请求jar时不会发送jsessionid。显然,只有在使用基于表单的身份验证或类似身份时,这才真正适用。