java.lang.NoClassDefFoundError: Не удалось инициализировать класс org.apache.commons.text.StringEscapeUtils - PullRequest
0 голосов
/ 24 ноября 2018

Я пишу функцию фильтрации символов, используя commons-text-1.6.jar.
Функция журнала в порядке, но затем появляется эта ошибка:

java.lang.NoClassDefFoundError: Could not initialize class org.apache.commons.text.StringEscapeUtils
    cc.openhome.web.EscapeWrapper.getParameter(EscapeWrapper.java:15)
    cc.openhome.controller.Login.doPost(Login.java:30)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    cc.openhome.web.EscapeFilter.doFilter(EscapeFilter.java:16)

Код:

package cc.openhome.web;

import org.apache.commons.text.StringEscapeUtils;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrappe

public class EscapeWrapper extends HttpServletRequestWrapper {
    public EscapeWrapper(HttpServletRequest req){enter code here
        super(req);
    }

    public String getParameter(String name){
        String value = getRequest().getParameter(name);
        return StringEscapeUtils.escapeHtml4(value);
    }
}

1 Ответ

0 голосов
/ 24 ноября 2018

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

РЕДАКТИРОВАТЬ: ответы на этот вопрос сверху:

  1. (Принят): Это происходит, когда существует файл класса, от которого зависит ваш код, и он присутствует во время компиляции, но не найден во время выполнения.Ищите различия во времени создания и пути к классам во время выполнения.

  2. Хотя возможно, что это связано с несоответствием пути к классам между временем компиляции и временем выполнения, это не обязательно так.

  3. java.lang.ClassNotFoundException Это исключение указывает, что класс не был найден в пути к классам.Это указывает на то, что мы пытались загрузить определение класса, а класс не существовал в пути к классам.

  4. java.lang.NoClassDefFoundError Это исключение указывает на то, что JVM посмотрела в своем внутреннем классеопределение структуры данных для определения класса и не найти его.Это отличается от того, что он не может быть загружен из пути к классам.Обычно это указывает на то, что мы ранее пытались загрузить класс из пути к классам, но по какой-то причине это не удалось - теперь мы пытаемся использовать класс снова (и, следовательно, нужно загрузить его, так как в прошлый раз он не удался), но мы 'мы даже не собираемся пытаться загрузить его, потому что мы не смогли загрузить его раньше (и разумно подозреваем, что у нас снова получится ошибка).Более ранний сбой мог быть ClassNotFoundException или ExceptionInInitializerError (указывающий на сбой в блоке статической инициализации) или любым другим количеством проблем.Дело в том, что NoClassDefFoundError не обязательно является проблемой пути к классам.

...