Несовместимое магическое значение 1010792557 при попытке запустить апплет, встроенный в Facelets - PullRequest
1 голос
/ 07 ноября 2011

Я получаю эту ошибку, когда захожу на страницу Facelets, где встроен апплет, через сервер Glassfish.Хотя, когда я открываю его просто с моего компьютера, он работает нормально, поэтому апплет в порядке.Можно ли запускать апплеты на Glassfish (3.1, JSF 2.0)?

Вот как я пытаюсь:

<applet code="test.TestApplet" archive="TestApplet.jar"/>

Ответы [ 2 ]

7 голосов
/ 07 ноября 2011

Это типичное сообщение ClassFormatError. Магическое значение допустимого Java-класса - 0xCAFEBABE, то есть первые 4 байта. Но вы получаете 0x3C3F786D, что означает символы ASCII <?xm.

Итак, запрос к TestApplet.jar, по-видимому, на самом деле вернул XML-документ. Вы сможете увидеть его самостоятельно, изменив URI текущего запроса в адресной строке браузера, указав на файл TestApplet.jar (т.е. измените /page.jsf или /page.xhtml в конце URL на /TestApplet.jar). Затем вы увидите, что браузер на самом деле извлекает при попытке загрузить апплет. Возможно, это простой документ об ошибке HTTP 404, обслуживаемый Facelets.

Чтобы это исправить, просто убедитесь, что URL в атрибуте archive указан правильно. Это относительно текущего URL запроса, как вы видите в адресной строке браузера.

0 голосов
/ 10 ноября 2011

Наконец я нашел решение:

Если я помещаю файл jar апплета в папку ресурсов моего веб-приложения и задаю путь к архивному файлу к нему, как показано ниже

<applet code="test.TestApplet" archive="../resources/TestApplet.jar"/>

отлично работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...