Ошибка загрузки апплета в веб-проекте Struts - PullRequest
0 голосов
/ 26 марта 2011

Я получаю разочаровывающие ошибки, связанные с «ClassNotFoundException», когда я пытаюсь загрузить апплет с помощью тега внутри файла JSP в веб-проекте Struts:

load: class com.superdeporter.audio.AudioApplet.class not found.
java.lang.ClassNotFoundException: com.superdeporter.audio.AudioApplet.class
    at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source)
    at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source)
    at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.io.IOException: open HTTP connection failed:http://localhost:8080/SampleAudioApplication/com/superdeporter/audio/AudioApplet/class.class
    at sun.plugin2.applet.Applet2ClassLoader.getBytes(Unknown Source)
    at sun.plugin2.applet.Applet2ClassLoader.access$000(Unknown Source)
    at sun.plugin2.applet.Applet2ClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)

И это код апплета в файле JSP:

<jsp:plugin type="applet" name="AudioApplet"
    code="AudioApplet.class" codebase="/com/superdeporter/audio" width="100"
    height="100" align="middle" jreversion="1.5"
    archive="">
</jsp:plugin>

Это кажется странной проблемой. Кстати, позвольте мне сказать, что я пробовал много комбинаций кода и параметров кодовой базы, и у меня все еще были те же ошибки. Как я знаю, параметр code должен иметь имя класса Applet в качестве значения, а параметр codebase должен иметь путь пакета этого класса апплета в качестве значения. Я не прав?

Может ли кто-нибудь, кто сталкивался с этой проблемой, поделиться со мной своим мнением? Есть ли решение этой проблемы? Любые предложения о том, как использовать апплеты в веб-проекте Struts, также приветствуются.

1 Ответ

1 голос
/ 26 марта 2011

Параметр codebase фактически является местоположением файла класса апплета на сервере относительно страницы jsp, которая вызывает апплет. Класс апплета должен находиться в общедоступном каталоге, поэтому стандартный каталог / WEB-INF / classes не будет работать.

Самый быстрый способ получить что-то работающее - полностью пропустить параметр codebase и просто поместить AudioApplet.class в тот же каталог, что и jsp. Ниже приведен пример:

    <jsp:plugin type="applet" 
                code="AudioApplet.class" 
                width="500" 
                height="500" 
                align="middle"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...