gpt4 book ai didi

java - 如何解决 java.lang.NoClassDefFoundError?

转载 作者:行者123 更新时间:2023-12-02 07:32:50 29 4
gpt4 key购买 nike

运行程序时出现 java.lang.NoClassDefFoundError!?这是堆栈跟踪:

java.lang.NoClassDefFoundError: org/apache/xerces/framework/XMLParser
abc.def.presentation.controllers.UnixServerJobController.handleRequestInternal(UnixServerJobController.java:64)
org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:807)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501)
javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)

这里是代码供关心的人使用

    protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response)
throws Exception{
try{
String jobName = request.getParameter("JobName");
jobName.concat(".xml");
String config = request.getParameter("Config");
File file = new File(config + "/"+jobName);
ConfigFile jobConfig = new ConfigFile(file);
SchdJobCaller jobCaller = getJobCaller();
jobCaller.runJobs(jobConfig);
}
catch(Exception e){
e.printStackTrace();
throw e;
}
return null;
}

只需传递像 abc.com/def.jsp?JobName=name1&Config=config1 这样的 url 即可由 Spring Web MVC 中的 Controller 处理!

这是我在谷歌搜索时发现的!

If you are working in J2EE environment than visibility of Class among multiple Classloaders can also cause java.lang.NoClassDefFoundError, see examples and scenario section for detailed discussion.

了解更多:http://javarevisited.blogspot.com/2011/06/noclassdeffounderror-exception-in.html#ixzz28CQRODWN

这可能是问题的根源,但是如何解决Class对多个Classloader的可见性!?

第一次遇到这样的错误!有什么建议可以给我吗?

谢谢

最佳答案

您必须找到一个包含 Apache Xerces XML 解析器的 JAR,并将其放入您的 CLASSPATH 中。

看起来investxa Controller 包想要使用Xerces。就我个人而言,我认为这不是一个好主意。 Java JDK 内置 DOM 和 SAX 解析器已经有一段时间了。

关于java - 如何解决 java.lang.NoClassDefFoundError?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12701087/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com