我用的是Myeclipse 10,Tomcat 7,启动Tomcat(不管是在Myeclipse中还是直接启动Tomcat)时会出现以下错误:
2012-3-14 20:45:06 org.springframework.beans.factory.support.DefaultSingletonBeanRegistry destroySingletons
信息: Destroying singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@197ebe66: defining beans [commodityClassAddAction,commodityClassListAction,commodityAddtAction,commodityListAction,commodityDeleteAction,goIndexAction,showImgAction,ShowByClassAction,ShowCommodityAction,AddToCarAction,DeleteFromCar,commodityClassDAO,commodityClassService,commodityDAO,commodityService,sessionFactory,transactionManager,txAdvice,org.springframework.aop.config.internalAutoProxyCreator,allManagerMethod,org.springframework.aop.support.DefaultBeanFactoryPointcutAdvisor]; root of factory hierarchy
2012-3-14 20:45:06 org.springframework.web.context.ContextLoader initWebApplicationContext
严重: Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'commodityClassDAO' defined in ServletContext resource [/WEB-INF/applicationContext-beans.xml]: Instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError: org/hibernate/SessionFactory
Caused by: java.lang.NoClassDefFoundError: org/hibernate/SessionFactory
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2427)
at java.lang.Class.privateGetPublicMethods(Class.java:2547)
at java.lang.Class.getMethods(Class.java:1410)
at java.beans.Introspector.getPublicDeclaredMethods(Introspector.java:1284)
at java.beans.Introspector.getTargetMethodInfo(Introspector.java:1158)
at java.beans.Introspector.getBeanInfo(Introspector.java:408)
at java.beans.Introspector.getBeanInfo(Introspector.java:167)
at java.beans.Introspector.getBeanInfo(Introspector.java:230)
at java.beans.Introspector.<init>(Introspector.java:389)
at java.beans.Introspector.getBeanInfo(Introspector.java:167)
at org.springframework.beans.CachedIntrospectionResults.<init>(CachedIntrospectionResults.java:244)
at org.springframework.beans.CachedIntrospectionResults.forClass(CachedIntrospectionResults.java:143)
at org.springframework.beans.BeanWrapperImpl.setIntrospectionClass(BeanWrapperImpl.java:236)
at org.springframework.beans.BeanWrapperImpl.setWrappedInstance(BeanWrapperImpl.java:194)
at org.springframework.beans.BeanWrapperImpl.setWrappedInstance(BeanWrapperImpl.java:177)
at org.springframework.beans.BeanWrapperImpl.<init>(BeanWrapperImpl.java:130)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean
哪位朋友也遇到过这个情况,给在下说下,万分感谢。

解决方案 »

  1.   

     Error creating bean with name 'commodityClassDAO' defined in ServletContext resource [/WEB-INF/applicationContext-beans.xml]: Instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError: org/hibernate/SessionFactory
    Caused by: java.lang.NoClassDefFoundError: org/hibernate/SessionFactory
    是你的spring配置文件(application-beans.xml)有问题,根据上面的错误提示信息应该是在spring的配置文件中你没配值bean SessionFactory,或者是你配置了,但你没有注入。
      

  2.   

    应该是没引入hibernate的jar包。
      

  3.   

    大家好。我现在发现一个很奇怪的问题:不在myeclipse中启动Tomcat,在myeclipse关闭,直接打开Tomcat也会出现以上错误。看来是Tomcat的问题,与工程无关了。
      

  4.   

    严重: Context initialization failed
    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'commodityClassDAO' defined in ServletContext resource [/WEB-INF/applicationContext-beans.xml]: Instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError: org/hibernate/SessionFactory
    Caused by: java.lang.NoClassDefFoundError: org/hibernate/SessionFactory
    这是问题解决的地方
      

  5.   

    楼主看来是刚学啊。你的出错与你是否打开myeclipse无任何关系,它仅仅是一个开发工具而已,你在myeclise里面启动tomcat与你关闭myeclipse直接启动tomcat本质上都是一样的(你的服务器(tomcat)开启了)。在myclipse里面启动,形象点说,那就是tomcat在myeclipse中的一个快捷方式而已。你的项目是部署在服务器(tomcat)里面的。在你启动tomcat的是否,那就是tomcat在检测你的这个web工程。跟myeclipse没有丝毫关系。
      

  6.   

    楼主真是人才,你给分的两个人一个回答完全不着边际,一个没头尾,楼主居然给分!!!!!!!!!!算了,给你提点我想说的啊。感觉你是不是有点追求速成了。欲速则不达!!!!。你连最本质 在myeclipse里启动tomcat和手动启动tomcat的区别都不懂,都在搞框架了,你真的牛人啊。我自愧不如啊。我估计你用单纯的servlet做的项目可能几乎没有。
      

  7.   

    谢谢。忠言逆耳,一点都不假,您分析的也很正确,我对java ee 一无所知。我也想从用记事本开始,拿着java ee 6的官方文档,拿着ssh的官方文档,从最简单的开始,把上面的例子都敲一遍,好好体会。我也知道这才是学习的正确途径。但怎么说呢,我只用两周的时间,在两周里要把原来的项目调通,还要加功能,在两周里“尽可能让老板看到效果”,我能预感到这是不可能完成的任务,但没办法,只能硬着头皮上,别无选择。