繁体   English   中英

java.lang.NoClassDefFoundError:无法初始化类org.apache.commons.text.StringEscapeUtils

[英]java.lang.NoClassDefFoundError: Could not initialize class org.apache.commons.text.StringEscapeUtils

我正在使用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);
    }
}

Apperantly很多事情可能导致此,但我发现,讨论这greter详细线程,你应该检查这个了!

编辑:该线程的顶级答案:

  1. (已接受):这是由代码所依赖的类文件引起的,并且该类文件在编译时存在,但在运行时未找到。 在构建时间和运行时类路径中寻找差异。

  2. 尽管这可能是由于编译时和运行时之间的类路径不匹配导致的,但不一定是正确的。

  3. java.lang.ClassNotFoundException此异常表明在类路径上找不到该类。 这表明我们正在尝试加载类定义,并且该类在类路径中不存在。

  4. java.lang.NoClassDefFoundError此异常表明JVM在其内部类定义数据结构中查找了类的定义,但未找到。 这与说无法从类路径中加载不同。 通常,这表明我们以前曾尝试从类路径中加载类,但由于某种原因而失败-现在我们正尝试再次使用该类(由于上次失败,因此需要对其进行加载),但是我们甚至不打算尝试加载它,因为我们无法更早加载它(并且合理地怀疑我们会再次失败)。 较早的故障可能是ClassNotFoundException或ExceptionInInitializerError(指示静态初始化块中的故障)或许多其他问题。 关键是,NoClassDefFoundError不一定是类路径问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM