首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NoClassDefFoundError

NoClassDefFoundError
EN

Stack Overflow用户
提问于 2011-03-12 20:37:09
回答 4查看 11.1K关注 0票数 1

我正在使用hibernate,在使用hibernate连接时,我收到如下错误

代码语言:javascript
复制
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文件。

现在我该怎么做呢?

EN

回答 4

Stack Overflow用户

发布于 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包含以下行:

代码语言:javascript
复制
private static Log log = LogFactory.getLog( Configuration.class );

因为这个字段被标记为static,所以这个字段的值是在类初始化时设置的。这个字段是这个类的惟一静态成员,所以如果JVM初始化这个类失败,那么这个字段一定有问题。

票数 6
EN

Stack Overflow用户

发布于 2011-03-12 20:49:48

java.lang.NoClassDefFoundError是一个棘手的例外。这并不一定意味着这个类不在那里。相反,它被抛出是为了表明第一次初始化该类时出现了一些问题。

当第一次访问这个类遇到这个问题(这里报告了问题的根源)时,这就特别麻烦了,但是随后对这个类的访问只会输出可怕的java.lang.NoClassDefFoundError,而没有引用任何原始问题。

在这种情况下,您的配置可能包含错误,或者可能完全丢失?

票数 4
EN

Stack Overflow用户

发布于 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

希望能有所帮助。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5282509

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档