SpringMvc+Spring4+Hibernate4整合常见错误

最近一直在做SpringMvc+Spring4+Hibernate4的整合,出了不少错误,这都是我们宝贵的经验啊,在整合的过程中,最大的问题就是 版本升级的问题,之前做过jdk1.6的例子,很顺利,但是升级到jdk1.8后,突然爆出了很多的错误,后来在调试的时候才发现,原来spring3和 jdk1.8是不兼容的版本,要么降低jdk到1.7及以下,或者升级spring版本,在更新换代和维稳的情况下,我选择了升级spring版本,结果 如果,咱们一起来看!

运行结果:

源码下载:springMvcTest单击下载

源码结构:

常见错误:

1 宏观:

    (1)spring3与jdk1,8

表现:不能正确编译类

解决方案:降低jdk版本到1.7及以下或者升级spring到4.0及以上、

    (2)tomcat6.0与jdk1.8

表现:不能运行网站

解决方案:升级tomcat服务器至8.0及以上

       小结:

1,在升级某个技术的版本时,一定要现在技术调研,否则,我们将被无情的错误大军淹没,而不知怎么解决

2,当错误指向jar包下的某个方法时,我们更愿意想到是缺失jar包和jar包冲突,这个问题往往使得我们陷入被动局面,跳出圈子,在整个版本的兼容上作出判断后,再来测试其他问题!

2 微观:

        (1)classpath*与classpath

表现:xml文件不能扫描

解决方案:classpath*是扫描到所有符合条件的文件,而classpath是只扫描第一个符合条件的文件,请按情况配置

        (2)dataSource

表现:数据库连接失败,但是服务已经启动

解决方案: <property name="url" value="jdbc:mysql://localhost:8444/springmvc" />  端口有可能写错误,网上的例子大多是默认端口,但是经过询问才知道,已经修改,要提前做好考察!

        小结:

在具体的实现中,我们也许明白了,他大概是这么配置的,但是具体的配置习惯了从网上下载一份现成的,我也经常这么做,这没有关系,我们不能看他没问题就放 弃研究他,很多时候,环境一变,我们解决问题的速度就在于我们遇到过多少问题,解决过多少问题,如果是自己亲手配置的,对每个细节都把我得比较具体,我们 就是大牛了!

        总结:

细节决定成败,这句话的基础是我们对宏观的认识,已经有了需要了解细节的步骤,宏观很多时候是微观的基础,在版本的控制,技术的整合方面,宏观就是指 导性的意见,而在于某个配置文件的编写,某个符号的含义,我们就需要在具体的需求中持续不断得深入,而且我们始终相信,万事皆有规律,符号更是如此,为了 通用性,他也必然有规律可循!相信自己,把握宏观,跟进微观,这就是架构稳定的基本因素!

-----------------------------------------------

MiniBu:最近开发时经常遇到无法访问静态服务器,后来发现原来是spring与jdk1.8不兼容导致的。在度娘的茫茫帖海里终于找到了原创作者的这篇总结的非常好的文章,就拿过来先备用。感谢原作者~~~

时间: 2024-10-12 09:40:15

SpringMvc+Spring4+Hibernate4整合常见错误的相关文章

spring4+springmvc+springdataJPA+hibernate4整合懒加载问题

摘要 第一个问题 解决办法 第二个问题 解决办法 摘要 本文主要是为了解决"spring4+springmvc+springdataJPA+hibernate4整合",注解了OneToMany.ManyToOne,并配置了懒加载,然后报错的问题 第一个问题 org.hibernate.LazyInitializationException: could not initialize proxy - no Session at 解决办法: 在web.xml中,配置springSevlet

J2EE开发框架搭建(2) - springmvc4 + spring4 + hibernate4 整合

1. 打开hqhop-framework-parent项目下的pom.xml文件,添加springmvc4 , spring4 , hibernate4 ,以及数据源druid的依赖包,插件,依赖包版本号 <!-- data source 相关jar? --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version&g

最新SpringMVC+Spring4.1.1+hibernate4.3.5+maven 整合详细楝及说明

最新SpringMVC+Spring4.1.1+hibernate4.3.5+maven 整合详细配置 app主配置web.xml文件如下: <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/java

关于spring4和hibernate4整合,配置事务报“Cannot unwrap to requested type [javax.sql.DataSource]”错误的解决方法及心得

Cannot unwrap to requested type [javax.sql.DataSource] 配置hibernate4和spring4时,出现错误,解决方法: 1.我去了spring4中的事务配置,数据库可以正常执行并访问.如下: <!-- 配置Hibernate  数据事务 --> <bean id="transactionManager" class="org.springframework.orm.hibernate4.Hibernat

[SSH] Eclipse+Struts2+Hibernate4+Spring4的整合

在前面Struts2和Hibernate4的整合基础上,对Spring4进行整合,网上参考的大概都是Spring4+Hibernate3或者基于MyEclispe的,这里把自己研究后的配置和大家分享一下. 本次相关的版本如下: Spring : spring-framework-4.0.1.RELEASE 1.将相关的jar包导入: 1.1libs目录下包含所有的jar包(不需要复制结尾为sources和javadoc的jar包)到SSHProject项目的lib目录 1.2 Hibernate

项目ITP(五) spring4.0 整合 Quartz 实现任务调度

前言 系列文章:[传送门] 项目需求: 二维码推送到一体机上,给学生签到扫描用.然后需要的是 上课前20分钟 ,幸好在帮带我的学长做 p2p 的时候,接触过.自然 quartz 是首选.所以我就配置了下,搞了个小样例给大家. 正文 spring4.0 整合 Quartz 实现任务调度.这是期末项目的最后一篇,剩下到暑假吧.  Quartz 介绍 Quartz is a full-featured, open source job scheduling service that can be in

SpringBoot+SpringMVC+MyBatis快速整合搭建

使用过SpringBoot的同学都知道,SpringBoot的pom.xml中的坐标都是按功能导入的,jar包之间的依赖SpringBoot底层已经帮我们做好了,例如我们要整合SprngMVC,只需要导入SpringMVC的起步依赖就可以了,SpringBoot会帮我们导入Spring和SpringMVC整合需要的jar包. SpringBoot是基于Spring4.0设计的,不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程.另外Sp

springMVC+MyBatis+Spring 整合(3)

spring mvc 与mybatis 的整合. 加入配置文件: spring-mybaits.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xm

Hibernate常见错误:java.lang.NoSuchMethodError: org.hibernate.SessionFactory.openSession()Lorg/hibe

hibernate4 与 spring3有点冲突 http://blog.csdn.net/gyflyx/article/details/7632645 整合NoSuchMethodError错误 and 升级Spring3.1RC2 和Hibernate4.0.0CR7遇到的一些问题及解决 2012-02-20 10:33:28|  分类: 编程_SSH |字号 订阅 我使用的是hibernate4和spring3,然后报的错误是 java.lang.NoSuchMethodError: or