我用Hibernate3+Struts1.1+tomcat5.0(JDK1.5+MyEclipse3.1)作一个简单的登陆项目,结果一点登陆就报错,如下:
java.lang.NoClassDefFoundError: org/hibernate/HibernateException
com.yourcompany.struts.action.LoginAction.execute(LoginAction.java:20)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
在网上找了下,他们说是Hibernate 3的默认方式是把所有类通过代理方式来进行延迟加载。如果代码中的类有一个私有无参的构造器的话,Hibernate将无法在运行时将项目代码中的类作为子类装载。为了避免这个错误,类中的构造器函数至少应该在包内可见。
??不懂这句话是什么意思,我都快郁闷死了,SOS!!!
------解决方案--------------------
你LoginAction代码怎么写的?
------解决方案--------------------
ehcache.jar这个包你有没有,没有的话加上,重起就OK了.
------解决方案--------------------
XML配置的问题,Hibernate
------解决方案--------------------
看出错的意思,说是少hibernate包吧.
------解决方案--------------------
意思是 你要手工写一个无参的构造函数
比如是Customer的
你要写
public Customer(){}
这样就可以了
还有一点,不用在configuration这个里适用addClass()这个函数。
它会通过配置文件来load的
代码迷推荐解决方案:java.lang.NoClassDefFoundError: org/hibernate/HibernateException,http://www.daimami.com/search?q=10135