Escape HTML с помощью сервлета [дубликат]

Если приведенная выше эмулированная производительность выделена серым цветом, что было для меня, поэтому приведенный выше ответ не помог.

Не самый эффективный способ, но вы можете изменить разрешение экрана до (1920x1080) и масштабный коэффициент до 100%, и он работает нормально. Возможно, вам придется перезагрузить компьютер.

2
задан Luiggi Mendoza 18 June 2014 в 23:09
поделиться

3 ответа

Что это значит?

Сначала давайте посмотрим на смысл java.lang.ClassNotFoundException :

Брошено, когда приложение пытается загрузить в класс через его имя строки, используя:

  • Метод forName в классе Class.
  • Метод findSystemClass в class ClassLoader.
  • Метод loadClass в классе ClassLoader.

, но определение класса с указанным именем не найдено.

Обычно это происходит при попытке открыть соединение вручную в этой форме:

String jdbcDriver = "...'; //name of your driver
Class.forName(jdbcDriver);

Или когда вы ссылаетесь на класс, принадлежащий внешней библиотеке, и Странно этот класс не может быть загружен, когда сервер приложений пытается развернуть приложение.

Давайте посмотрим на смысл java.lang.NoClassDefFoundError (выделение мое):

Брошено, если виртуальная машина Java или экземпляр ClassLoader пытается загрузить в определении класса (как часть обычного вызова метода или как часть создания нового экземпляра с использованием новое выражение), и определение класса не может быть найдено.

Определение класса поиска для поиска существовало при компиляции текущего исполняемого класса, но определение больше не может быть найдено.

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


< blockquote>

Как это исправить?

В веб-приложениях Java все сторонние библиотеки, используемые вашим приложением, должны быть в папке WEB-INF / lib. Убедитесь, что все необходимые библиотеки (банки) размещены там. Вы можете легко проверить это:

- <webapp folder>
  - WEB-INF
    - lib
      + jar1
      + jar2
      + ...
  - META-INF
  - <rest of your folders>

Эта проблема обычно возникает для JDBC-подключений (MySQL, Derby, MSSQL, Oracle и т. Д.) Или веб-фреймворков MVC, таких как JSF или Spring MVC.

Учтите, что некоторые сторонние библиотеки полагаются на другие сторонние библиотеки, поэтому вам нужно добавить все их в WEB-INF / lib, чтобы приложение работало. Хорошим примером этого является библиотека RichFaces 4, , где вы должны загружать и добавлять внешние библиотеки вручную .


Примечание для пользователей Maven : вы не должны испытывать эти проблемы, если вы не установили библиотеки как provided, test или system. Если установлено значение provided, вы несете ответственность за добавление библиотек где-нибудь в пути к классам. Здесь вы можете найти дополнительную информацию о областях зависимостей: Введение в механизм зависимостей


В случае, если библиотека должна быть разделена между несколькими приложениями, которые будут развернуты в вашем приложении сервер, например MySQL для двух приложений, есть еще одна альтернатива. Вместо того, чтобы развернуть два военных файла, каждый со своей собственной библиотекой соединителей MySQL, поместите эту библиотеку в общую библиотечную папку серверного приложения, это позволит библиотеке быть в пути к классам всех развернутых приложений.

Эта папка отличается от сервера приложений.

  • Tomcat 7/8: <tomcat_home> / lib
  • JBoss 7 / Wildfly: <jboss_home> / standalone / lib
4
ответ дан 7 revs 20 August 2018 в 17:48
поделиться

Класс должен существовать под WEB-INF / classes или находиться внутри файла .jar в разделе WEB-INF / lib. Убедитесь, что он делает.

0
ответ дан Karim Baidar 20 August 2018 в 17:48
поделиться
  • 1
    Да, я полностью это понимаю. Проверьте мой ответ. Отредактируйте его, если вы считаете, что он пропускает что-либо. – Luiggi Mendoza 28 May 2014 в 08:40

Такая же проблема со мной.

Возможно, одна из ваших библиотек использует некоторые внутренние классы, которые недоступны

в вашей зависимости lib или maven pom.xml.

Thats означает, что вы анализируете свои журналы ошибок и идентифицируете эти классы, а затем импортируете все зависимости в папке maven или lib.

Я исправил эту ошибку тем же способом.

, потому что некоторые из моих библиотек используют internal.jar и json.jar внутри.

0
ответ дан Lavekush Agrawal 20 August 2018 в 17:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: