Я начинаю работать над апплетом, который заменит существующий. Никогда раньше не разрабатывавший апплет, я решил начать с популярного примера HelloWorld. Я могу запустить его несколькими способами: в средстве просмотра апплетов, а также в браузере, если я помещу файл JAR, содержащий класс HelloWorld, в тот же каталог, что и HTML (т.е. http://localhost:8080/myApp). Я также заставил его работать, когда поместил JAR в каталог с именем HelloWorld чуть ниже каталога myApp
и указал параметр codebase
в теге <applet>
как HelloWorld
. Но когда я пытаюсь указать WEB-INF
каталогов, таких как classes
или lib
, я получаю ClassNotFoundException
. Что я делаю неправильно?
Java-апплет ClassNotFoundException с кодовой базой
Ответы (1)
Но когда я пытаюсь указать
WEB-INF
каталоги, такие какclasses
илиlib
, я получаюClassNotFoundException
. Что я делаю неправильно?
Эти каталоги предназначены только для классов/jar, которые используются в JSP и сервлетах (т.е. для всего, что нужно серверу). Ресурсы внутри них доступны посетителям сайта. В этом смысле «посетитель» означает пользовательский агент (т. е. браузер) или подключаемый модуль на стороне клиента (например, Flash или JRE).
Вы можете убедиться в этом сами, вставив полный URL-адрес Jar в адресную строку веб-браузера и нажав «Ввод», чтобы перейти к нему в браузере. Сервер вернет сообщение об эффекте «запрещено».
См. также информацию WEB-INF. страница, которая расширяется:
WEB-INF — это имя папки в веб-приложениях Java. Он используется для хранения информации о развертывании, такой как файл web.xml, необходимые файлы библиотек и файлы скомпилированных классов. Обычно он недоступен из Интернета. Любые файлы, которые вы хотите поставить на войну, но не хотите публиковать, тогда web-inf — это место, где вы можете хранить эти файлы.