我正在使用hibernate,在使用hibernate连接时,我收到如下错误
java.lang.NoClassDefFoundError: Could not initialize class org.hibernate.cfg.Configuration
at com.ensarm.niidle.server.SchemaManager.getDatabaseSession(SchemaManager.java:60)
at com.ensarm.niidle.server.helper.UserServiceHelper.createNiidleUser(UserServiceHelper.java:27)
at com.ensarm.niidle.server.UserSignUpServlet.doPost(UserSignUpServlet.java:75)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:729)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.handler.RequestLogHandler.handle(RequestLogHandler.java:49)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:324)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:843)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:647)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488)请帮我解决这个问题,我已经在我的Web App的lib文件夹中添加了所有需要的hibernate jar文件。
现在我该怎么做呢?
发布于 2011-03-12 21:59:52
我怀疑您丢失了一个log4j jar或commons-logging.jar。
消息Could not initialize class org.hibernate.cfg.Configuration意味着JVM已经尝试过初始化类org.hibernate.cfg.Configuration,但是失败了。source code of the class包含以下行:
private static Log log = LogFactory.getLog( Configuration.class );因为这个字段被标记为static,所以这个字段的值是在类初始化时设置的。这个字段是这个类的惟一静态成员,所以如果JVM初始化这个类失败,那么这个字段一定有问题。
发布于 2011-03-12 20:49:48
java.lang.NoClassDefFoundError是一个棘手的例外。这并不一定意味着这个类不在那里。相反,它被抛出是为了表明第一次初始化该类时出现了一些问题。
当第一次访问这个类遇到这个问题(这里报告了问题的根源)时,这就特别麻烦了,但是随后对这个类的访问只会输出可怕的java.lang.NoClassDefFoundError,而没有引用任何原始问题。
在这种情况下,您的配置可能包含错误,或者可能完全丢失?
发布于 2011-03-12 20:56:40
阿扬说的话。您遇到的错误并不是说它找不到cfg.Configuration。它只是说明在cfg.Configuration的初始化过程中,没有找到类定义。您的日志中是否还有其他异常?
在我看来,你的应用程序的WEB-INF/lib目录中缺少cfg.Configuration所依赖的类。
看看Spring论坛上的这个帖子,他们似乎在谈论你所遇到的问题:
http://forum.springsource.org/showthread.php?t=65296
特别请看其中一位资深成员的帖子,他提到了另外四个缺失的jars (请注意,这是在2008年,我不知道您使用的是hibernate和spring版本):
http://forum.springsource.org/showpost.php?s=f3b5de4e9df29e65d4c9acaafc1676c8&p=219678&postcount=10
希望能有所帮助。
https://stackoverflow.com/questions/5282509
复制相似问题