由于毕设中做的是图片搜索网站,选择前端框用SSH,因为之间接触过SSH框架,略有了解,但没有深究,现在在整合redis和mongodb的过程中遇到很多错误,也是十分痛苦,只能通过百度和一步步尝试着解决问题。

首先,先把自己在整合过程中用到包先放出来。

一开始使用的是spring3.0.4,整合好redis后发现这个版本整合mongodb特别麻烦,而且网上的方案也特别少,参考这个两个建议https://blog.csdn.net/wangpeng047/article/details/7705793;https://blog.csdn.net/erliang20088/article/details/45789975;我选着升级spring版本。

先看看我在整合redis时遇到的错误:

严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.beans.factory.config.PropertyPlaceholderConfigurer#0':
Error setting property values; nested exception is org.springframework.beans.PropertyBatchUpdateException;
nested PropertyAccessExceptions () are:PropertyAccessException : org.springframework.beans.MethodInvocationException:
Property 'systemPropertiesModeName' threw exception; nested exception is org.springframework.core.ConstantException:
  1. 更换了jar包版本(调低)调到了现在的版本,还好在升级版本的时候还可以继续使用。
  2. 因为context 配置redis.properities时报错,所以我干脆不用这个配置文件,直接写死,成功解决问题。

整合好redis后开始整合mongodb,这个花了很长时间,主要的是jar包版本不匹配是问题,而且我也不知道到底谁和谁不匹配,而且同一个错误,网上会有很多不同的解答,因此解决问题还得根据情况自己摸索,通过这次经历,我总结,以后做项目,必须要提前整体规划好,要不然最后更换根基费时费力。遇到的主要的报错是;

Unexpected exception parsing XML document from class path resource [mongodb.xml]; 
nested exception is org.springframework.beans.FatalBeanException:
Invalid NamespaceHandler class [org.springframework.data.mongodb.repository.config.MongoRepositoryConfigNamespaceHandler] for namespace
[http://www.springframework.org/schema/data/mongo]:
problem with handler class file or dependent class; nested exception is java.lang.NoClassDefFoundError:
org/springframework/data/repository/config/RepositoryConfigurationExtension

这个错误NoClassDefFoundError一般是因为缺少某个jar包导致的。

导入jar包后,报错如下:

Error creating bean with name 'mongoTemplate' defined in class path resource [mongodb.xml]: 
Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException:
Could not instantiate bean class [org.springframework.data.mongodb.core.MongoTemplate]:
Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: org/springframework/objenesis/ObjenesisStd

可以看出这个错误和之前的错误很相似,没错,我就卡在这很长时间,这个错误是因为jar包的版本不对导致的,于是我尝试很多版本的jar包,结果不行,看到

https://blog.csdn.net/wangpeng047/article/details/7705793;https://blog.csdn.net/erliang20088/article/details/45789975这两人的博客后,我选择升级spring版本,升级的方法就是只是替换spring其他的不动,之前把hibernate的版本也换成了4发现又有其他错,所以干脆不升级hibernate了,结果还不错没报错。

这个过程可能会有这个错误:

Failed to process JAR [jar:file:/C:/Users/xu/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp2/wtpwebapps/Pic_searcher/WEB-INF/lib/org.springframework.context-4.3.2.RELEASE.jar!/]

for TLD files

这个错误是因为在导入该jar包的过程中产生的错误,可能是由于jar包损坏,解决方案是重新导入正确的jar即可。

接下来有了前面经验,跟着网上提供的步骤整合,又遇到了这个错误,所以果断更换jar包,spring-data-mongoDB.jar的版本之前时1.10,换成1.8时就解决此错误。

这样就解决了大的困难,接下来,就简单了许多,长路漫漫,还得共同努力。

这个过程有一种不求甚解的感觉,这样不好,但时间紧迫,还有很多东西要学,时间宝贵,你我共同珍惜。

纠正一个错误,这个错误是在第二天重启编译器发现的,有的时候就是这样必须得重新启动一下。

错误是hibernate的原因,还是因为在升级spring替换包的时候造成的,上图截图中有一个spring-orm包,这个包整合第三方的orm实现,如hibernate,ibatis,jdo以及spring 的jpa实现,如果你在applicationContext.xml文件中找到"org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean",然后Ctrl+左键你会发现它来自于这个包中,所以解决方法是不替换这个包,改为原来的spring-orm.3.4就行了。

SSH整合redis和MongoDB错误笔记的更多相关文章

  1. 2流高手速成记(之四):SpringBoot整合redis及mongodb

    最近很忙,好不容易才抽出了时间,咱们接上回 上次我们主要讲了如何通过SpringBoot快速集成mybatis/mybatis-plus,以实现业务交互中的数据持久化,而这一切都是基于关系型数据库(S ...

  2. springboot学习笔记-3 整合redis&mongodb

    一.整合redis 1.1 建立实体类 @Entity @Table(name="user") public class User implements Serializable ...

  3. ssh整合hibernate 使用spring管理hibernate二级缓存,配置hibernate4.0以上二级缓存

    ssh整合hibernate 使用spring管理hibernate二级缓存,配置hibernate4.0以上二级缓存 hibernate  : Hibernate是一个持久层框架,经常访问物理数据库 ...

  4. springmvc+rest整合redis

    最近在做一个项目需要用到关系数据库mysql和缓存redis,以及非关系型数据库mongoDB.昨天下午到今天上午一直在搞springmvc整合redis,期间出现的错误一直让人抓狂,在网上搜索的结果 ...

  5. MongoDB学习笔记:快速入门

    MongoDB学习笔记:快速入门   一.MongoDB 简介 MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统.在高负载的情况下,添加更多的节点,可以保证服务器性能.M ...

  6. MongoDB学习笔记系列

    回到占占推荐博客索引 该来的总会来的,Ef,Redis,MVC甚至Sqlserver都有了自己的系列,MongoDB没有理由不去整理一下,这个系列都是平时在项目开发时总结出来的,希望可以为各位一些帮助 ...

  7. 【Java EE 学习 67 下】【OA项目练习】【SSH整合JBPM工作流】【JBPM项目实战】

    一.SSH整合JBPM JBPM基础见http://www.cnblogs.com/kuangdaoyizhimei/p/4981551.html 现在将要实现SSH和JBPM的整合. 1.添加jar ...

  8. PHP操作MongoDB学习笔记

    <?php/*** PHP操作MongoDB学习笔记*///*************************//**   连接MongoDB数据库  **////*************** ...

  9. HBase、Redis、MongoDB、Couchbase、LevelDB主流 NoSQL 数据库的对比

    最近小组准备启动一个 node 开源项目,从前端亲和力.大数据下的IO性能.可扩展性几点入手挑选了 NoSql 数据库,但具体使用哪一款产品还需要做一次选型. 我们最终把选项范围缩窄在 HBase.R ...

随机推荐

  1. java 环境变量配置 详解!

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. python之对字符串类型的数组求平均值

    该字符串是在网页表格中复制的,所以数字间由制表符间隔,先将其转换成列表,再进行统计计算.代码如下: str = "-18.1 -18.3 -18 -18.2 -18 -17.4 -18 -1 ...

  3. MIUI(ADUI)关闭广告推送步骤方法

    MIUI自从到了版本MIUI8之后,系统增加了各种推送,让人们所诟病.很多消费者因为这个原因,不再考虑小米手机,尽管小米手机确实很便宜. 下面就说一下如何关闭所有的MIUI 8的广告推送.方法源自MI ...

  4. css进行网站布局

    一.一列布局(例如百度首页) 通常用 {margin:0 auto;} 控制. <!DOCTYPE> <html xmlns="http://www.w3.org/1999 ...

  5. 使用js主函数的原因是等文档加载完了才给里面的元素添加东西 如果不使用主函数则文档加载时候无法找到元素则不能成功给元素添加事件

    使用js主函数的原因是等文档加载完了才给里面的元素添加东西 如果不使用主函数则文档加载时候无法找到元素则不能成功给元素添加事件

  6. memcached安装报错 error while loading shared libraries: libevent-2.0.so.5: cannot open shared object file: No such file or directory解决

    我是从其他服务器scp来的memcached(~~~整个文件夹的那种,windows用多了的后遗症) 在准备运行 ./memcached -d -u root -l localhost -m 800 ...

  7. HDU 4256 翻译罗马数字

    参考自:https://www.cnblogs.com/ECJTUACM-873284962/p/6414173.html The Famous Clock Time Limit: 2000/1000 ...

  8. Python中的numpy模块解析

    numpy 1.  创建对象 维度(dimensions):轴 轴的个数:秩(rank) Numpy最重要的一个特点就是其N维数组对象(即ndarray) 创建数组最简单的函数就是用array函数: ...

  9. P2084 进制转换

    原题链接 https://www.luogu.org/problemnew/show/P2084 这个题的思路就是先将输入的数字存到字符数组里,然后求出这一串数字中的非0元素的个数total,并记录最 ...

  10. 【POJ1037】A decorative fence(DP)

    BUPT2017 wintertraining(15) #6C 题意 给长度n的数列,1,2,..,n,按依次递增递减排序,求字典序第k小的排列. 题解 dp. up[i][j]表示长度为j,以第i小 ...