运行程序时出现 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 中的控制器处理!
这是我在谷歌搜索时发现的!
如果您在 J2EE 环境中工作,那么多个 Classloader 之间的 Class 可见性也会导致 java.lang.NoClassDefFoundError,请参阅示例和场景部分进行详细讨论。
阅读更多:http: //javarevisited.blogspot.com/2011/06/noclassdeffounderror-exception-in.html#ixzz28CQRODWN
这可能是问题的根源,但是如何解决 Class 对多个 Classloader 的可见性!??
这是我第一次遇到这样的错误!对我有什么建议吗?
谢谢