我正在尝试运行tomcat应用程序,但是当我尝试转到应用程序时,我得到了:
java.lang.NoClassDefFoundError:无法初始化类ysl.util.Utils ysl.util.Utils.executeQuery(Utils.java:186)
ysl.util.Utils.getProperty(Utils.java:395)
ysl.util.Utils.getProperty(Utils.java:383)
ysl.util.YslMachineProperties.init(YslMachineProperties.java:76)
ysl.util.YslMachineProperties.getTomcatImagesDirectory(YslMachineProperties.java:109)
org.apache.jsp.YSLLogin_jsp._jspService(YSLLogin_jsp.java:70)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
我在网上发现了很多关于这个问题的引用 - 大多数人说在编译应用程序时有一个类在运行时不可用,我需要在java类路径中添加一些内容来查找它。但是我如何确定缺少哪个班级?
错误消息说Utils类无法初始化,但堆栈跟踪显示我们已进入类中的第二个方法,所以我认为该类已经初始化。当然,这不是无法找到定义的类,因为我们在堆栈跟踪中有行号信息。
触发错误的方法如下所示:
static public ResultSet executeQuery(String queryString)抛出SQLException {
返回dbConnPool.executeQuery(queryString);
有什么建议吗?
答案 0 :(得分:0)
很可能Utils类正在尝试使用另一个在静态初始化期间不可用的类(这将是@BalusC指出的根本原因)。加载该类失败也会导致Utils失败,因此即使定义了Utils,它的依赖也不会。
答案 1 :(得分:0)
如果您使用的是oracle(ex Sun)java,请尝试运行:
java -verbose:class
http://download.oracle.com/javase/6/docs/technotes/tools/windows/java.html
下的更多选项您将看到加载了哪些类。