Вопрос

Это сервер Windows, работающий Apache и Tomcat. Я добавил новый класс в существующий пакет и попытался ссылаться на его со страницы JSP, как это:

jsp:useBean id="promotion" class="MY.NEWCLASS" scope="session" 

я что-то упускаю? Нужно ли сделать что -нибудь особенное, чтобы добавить класс в упаковку? Заранее спасибо.

Страница JSP загружается нормально, но когда я пытаюсь нажать на кнопку, которая использует этот класс, я получаю исключение Uncaught: java.lang.ClassNotFoundException:MY.NEWCLASS

Это было полезно?

Решение

Вы должны убедиться, что файл класса присутствует в /WEB-INF/classes/MY/NEWCLASS.class развернутого веб -привязки. Или когда это в папке /MY/NEWCLASS.class Внутри файла JAR с именем filename.jar, тогда вам нужно убедиться, что он присутствует в /WEB-INF/lib/filename.jar развернутого веб -привязки.

Обратите внимание, что полностью квалифицированное имя чувствительно к корпусу. Таким образом, имя должно быть точным совпадением. Может быть, вы были небрежны с примером кода в своем вопросе, но использование столиц таким образом не является нормальным соглашение об именовании. Анкет Есть вероятность, что это фактически называется my.NewClass Например. Затем вы должны объявить как таковые в своем jsp:useBean.

Другие советы

Похоже, вы забыли развернуть новый класс на сервере. Как вы можете отладить это?

Во -первых, вы можете проверить дорожку класса. В том месте, где вы получаете исключение, получите текущий загрузчик класса:

ClassLoader cl = getClass().getClassLoader();

Если это Urlclassloader, Спросите это URL:

while( cl != null ) {
    if( cl instanceof URLClassLoader ) {
        URL[] urls = ((URLClassLoader)cl).getURLs()
        for( URL url : urls ) System.out.println(url);
    }
    cl = cl.getParent();
}

Теперь вы можете проверить, что вывод содержит то, что вы ожидаете.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top