Code Bye

struts2+ hibernate4 +spring4问题求助

Exception in thread “main” org.springframework.beans.factory.BeanCreationException: Error creating bean with name “”sessionFactory”” defined in class path resource [applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: org/hibernate/service/jndi/JndiNameException
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1553)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:304)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:300)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:195)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:681)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:760)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:482)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
at com.bufoon.util.Util.main(Util.java:68)
Caused by: java.lang.NoClassDefFoundError: org/hibernate/service/jndi/JndiNameException

applicationContext.xml

<!– session工厂 –>
<bean id=”sessionFactory”
class=”org.springframework.orm.hibernate4.LocalSessionFactoryBean”>
<property name=”dataSource”>
<ref bean=”dataSource” />
</property>
<property name=”configLocation” value=”classpath:hibernate.cfg.xml”/>
<!– 自动扫描注解方式配置的hibernate类文件 –>
<property name=”packagesToScan”>
<list>
<value>com.bufoon.entity<alue>
<st>
</property>
</bean>


10分
这个是类没找到,也就是jar包问题。你hibernate用的是4点几

10分
还有一种可能,就是你的服务器jre版本。系统jre、MyEclipse、中间件服务器jer必须一致。否则可能导致这种运行时java.lang.NoClassDefFoundError

10分
你的jar包都加全了吗?

15分
java.lang.NoClassDefFoundError: org/hibernate/service/jndi/JndiNameException 检查下hibernate Jar 中有没有这个class类
再就是2楼说的那种情况了,有可能是jdk版本,struts,spring以及log4j 等的版本不配套导致的
先检查下有没有那个class,然后检查配套jar包的匹配问题

15分
org/hibernate/service/jndi/JndiNameException这个类应该在hibernate-core4.jar里,看你使用的jar是否是一个系列的版本。
用maven管理jar的 ,从网上下的例子,可能是jdk的版本和 tomcat的jre不匹配
<!– Spring –>
<spring-framework.version>4.0.2.RELEASE</spring-framework.version>
<aspectj.version>1.8.0</aspectj.version>
<!– Hibernate / JPA –>
<!– 与Spring4兼容 –>
<hibernate.version>4.3.5.Final</hibernate.version>
<!– strutus 2 –>
<struts2.version>2.3.16.3</struts2.version>
<!– Test –>
<junit.version>4.11</junit.version>

15分
spring是个大坑,别用为好
空闲时间玩玩,工作没用到

10分
hibernate-core.jar这个jar用4.2试试

15分
jar包弄进来了么  很有可能是jar包的版本不对
不好意思 ,结贴晚啦 ,问题解决,
解决步骤:
1、先测试在eclipse中的server是否运行正常 –>正常 ;
2、写一个测试类测试 所有配置文件的是否配置正常,也就是测试applicationContext.xml的配置是否正常 ,是否能插入数据库;
3、用maven打成war包,查看开发环境中的jar包和 war包中的jar是否有不一样,结果:基本相同 
4、检查eclipse的maven插件的配置settings是否正常,maven的仓库指向了 maven的默认路径了,修改后,程序正常;

当然,这之后还是遇到蛮多问题的 ,经过不懈努力,程序查询数据库 然后登录,实现全注解方式(struts2+ hibernate4+spring4)。

开始新的学习…

谢谢各位朋友的热心回答,真心的谢谢!


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明struts2+ hibernate4 +spring4问题求助