spring spring mvc hibernate整合遇到的异常
来源:互联网 发布:淘宝美工好找工作吗 编辑:程序博客网 时间:2024/06/08 04:43
ssh-test12-06版本,异常解决过程
[org.springframework.web.context.ContextLoader]Context initialization failed
把web.xml中的hibernate.cfg.xml删掉解决了
[org.springframework.web.context.support.XmlWebApplicationContext]Exception encountered during context initialization - cancelling refresh attempt
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [spring.xml]: Invocation of init method failed; nested exception is java.lang.IncompatibleClassChangeError: class net.sf.cglib.core.DebuggingClassWriter has interface org.objectweb.asm.ClassVisitor as super class
检查了jar包,发现asm包有两个,修改pom.xml文件,删掉了一个asm包并没有解决问题。
将cglib的版本改为2.2解决了这个问题,该版本中的DebuggingClassWriter的父类为ClassWriter
又出现了
[org.hibernate.impl.SessionFactoryImpl]Unable to construct current session context [org.springframework.orm.hibernate4.SpringSessionContext]
java.lang.NoSuchMethodException: org.springframework.orm.hibernate4.SpringSessionContext.<init>(org.hibernate.engine.SessionFactoryImplementor)
解决不了,改数据源配置
github上找了一个ssh的demo,使用的是Druid,其版本配置为spring4.2+hibernate5
https://github.com/liyifeng1994/ssm ssm demo,全过程
aop配置问题
配置事务时,一定注意expression="execution(* com.crm..*(..))" 应该为expression="execution(* com.crm.*.*(..))" ,这样,切点才定位到方法上了。
java.lang.UnsupportedOperationException: Not supported by BasicDataSource
异常处理:
<beanid="dataSource"class="org.apache.commons.dbcp.BasicDataSource">改为
<beanid="dataSource"class="org.springframework.jdbc.datasource.DriverManagerDataSource">
部署Maven项目到tomcat报错:java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
问题背景:
工程为maven工程,ContextLoaderListener类位于spring-web-3.1.0.RELEASE.jar包中。检查了maven的pom.xml,依赖引入正常。在工程Maven Dependencies视图中也能看到spring-web-3.1.0.RELEASE.jar包被正常引入进来了。
错误原因:
进入到tomcat的部署路径.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\下检查了一下,发现工程部署后在WEB-INF文件夹下没有生成lib目录,正常情况下,会生成lib目录并把工程的所有依赖jar包都部署到该目录下。
解决方案:
1.右键点击项目--选择Properties
选择Deployment Assembly,在右边点击Add按钮,在弹出的窗口中选择Java Build Path Entries
2.点击Next,选择Maven Dependencies
3.点击Finish,然后可以看到已经把Maven Dependencies添加到Web应用结构中了。
操作完后,重新部署工程,不再报错了。然后我们再到 .metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\ 目录下,发现工程WEB-INF目录下自动生成了lib目录,并且所有的依赖jar包也都已经部署进来。问题因此解决。
找不到jdbc.properties中的变量的错误:{jdbc_driverClassName}不起作用,的解决方案
在spring-hibernate.xml文件中加入<context:property-placeholderlocation="classpath*:config.properties"/>
找不到spring.xml的处理
classpath:spring.xml -> classpath*:spring.xml
页面跳转问题的处理
暂未处理完毕
A child container failed during start java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/demo]]
解决方法:
解决这个问题的关键在于错误信息中的:
打开项目下的“src\main\webapp\WEB-INF\web.xml”文件,查找类似下面的节点:
将这个节点删除,问题就解决了。
spring默认加载的配置文件名demo-servlet.xml
<servlet>
<servlet-name>demo</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>demo</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userinfoController': Injection of autowired dependencies failed; nested exception isorg.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.demo.service.IUserinfoService com.demo.controller.UserinfoController.userinfoServiceImpl; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.demo.service.IUserinfoService] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true), @org.springframework.beans.factory.annotation.Qualifier(value=userinfoServiceImpl)}
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:334)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1214)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:543)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:772)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:839)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:538)
at org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:668)
at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:634)
at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:682)
at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:553)
at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:494)
at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:136)
at javax.servlet.GenericServlet.init(GenericServlet.java:158)
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1227)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1140)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1027)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5038)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5348)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1408)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1398)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by:org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.demo.service.IUserinfoService com.demo.controller.UserinfoController.userinfoServiceImpl; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.demo.service.IUserinfoService] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true), @org.springframework.beans.factory.annotation.Qualifier(value=userinfoServiceImpl)}
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:573)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:331)
... 29 more
Caused by:org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.demo.service.IUserinfoService] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true), @org.springframework.beans.factory.annotation.Qualifier(value=userinfoServiceImpl)}
at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:1373)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1119)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1014)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:545)
... 31 more
这个异常主要是因为注入bean的顺序导致,在spring-servlet配置文件中,应该按dao->service->controller的顺序扫描各个包。
正确的spring-servlet扫描包的过程:
<!-- 注解扫描包 -->
<context:component-scan base-package="com.demo.dao.impl" />
<context:component-scan base-package="com.demo.services.impl" />
<context:component-scan base-package="com.demo.controllers" />
原因:controller里面的方法依赖了service,而service又依赖了dao
错误的配置
<context:component-scanbase-package="com.demo.controllers"/>
<!-- 自动扫描dao和service包(自动注入) -->
<context:component-scanbase-package="com.demo.services.impl"/>
<context:component-scanbase-package="com.demo.dao.impl"/>
阅读全文
0 0
- spring spring mvc hibernate整合遇到的异常
- Hibernate、Spring和Spring MVC的整合
- spring mvc + hibernate 整合
- Spring mvc+Spring+hibernate整合
- Spring mvc+Spring+hibernate整合
- Redis + Jedis + Spring整合遇到的异常
- Spring 与 hibernate 整合遇到的问题
- spring整合hibernate中遇到的坑
- spring和hibernate整合遇到的问题
- Spring整合Hibernate遇到的问题
- spring整合hibernate时的getHibernateTemplate()异常
- spring + spring mvc + mybatis 项目整合的异常分析
- Spring + Sping MVC +Hibernate 整合
- Spring MVC 整合 hibernate-validator
- Spring整合iBatis之一:整合中遇到的异常总结
- hibernate整合spring异常处理
- Spring MVC+Spring+hibernate框架配置整合
- spring整合hibernate和spring MVC
- Android 悬浮弹窗window dialog
- Hibernate单独使用 (一)建立和基本使用方法
- oracle 查看表操作历史记录
- 关于Object中的hashCode方法
- c#中如何实现拷贝对象
- spring spring mvc hibernate整合遇到的异常
- 模式识别与机器学习(第一章)学习笔记
- RecyclerView的简单使用(一)———— 实现各种布局效果
- springcloud《一》--认识spring boot
- TFTP服务器的使用
- Android动画分类
- maven_如何导包
- 【python】线程池ThreaPool-多线程mysql爆破+源码分析
- 二十五、匿名函数