常见异常
来源:互联网 发布:陕西官员被网络大V攻击 编辑:程序博客网 时间:2024/06/07 09:05
一、Struts2
1.1 NoSuchBeanDefinitionException
异常描述:
没有suchbean定义异常:没有匹配的PlatformTransactionManager Bean
异常信息:
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'transactionManager' is defined: No matching PlatformTransactionManager bean found for qualifier 'transactionManager'
异常原因:
事务管理Bean命名错误
解决方案:
检查applicationContext配置文件hibernate事务管理命名
解决人:
备注:
模板
异常描述:
异常信息:
异常原因:
解决方案:
解决人:
Hyj
备注:
二、Hibernate
2.1 ClassNotFoundException
异常描述:
找不到FilterDefinition
异常信息:
java.lang.ClassNotFoundException: org.hibernate.engine.FilterDefinition
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1713)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1558)
... 44 more
继而引发org.springframework.beans.factory.BeanCreationException
异常原因:
解决方案:
解决人:
备注:
2.2 NoSuchMethodError
异常描述:
异常信息:
o java.lang.NoSuchMethodError: org.hibernate.SessionFactory.openSession()Lorg/hibernate/classic/Session;
at org.springframework.orm.hibernate3.SessionFactoryUtils.doGetSession(SessionFactoryUtils.java:328)
at org.springframework.orm.hibernate3.SessionFactoryUtils.getSession(SessionFactoryUtils.java:208)
at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.getSession
异常原因:
因为opensessioninview filter的问题,如果你的配置还是hibernate3,需要改为hibernate4
<filter>
<filter-name>openSessionInViewFilter</filter-name>
<filter-class>org.springframework.orm.hibernate4.support.OpenSessionInViewFilter</filter-class>
</filter>
由于Hibernate4已经完全可以实现事务了, 与Spring3.1中的hibernatedao,hibernateTemplete等有冲突,所以Spring3.1里已经不提供Hibernatedaosupport,HibernateTemplete了,只能用Hibernate原始的方式用session:
Session session = sessionFactory.openSession();
Session session = sessionFactory.getCurrentSession();
在basedao里可以用注入的sessionFactory获取session.
注意, 配置事务的时候必须将父类baseServiceImpl也配上,要不然会出现错误:No Session found for currentthread, 以前是不需要的
SessionFactory.getCurrentSession()的后台实现是可拔插的。因此,引入了新的扩展接口 (org.hibernate.context.spi.CurrentSessionContext)和
新的配置参数(hibernate.current_session_context_class),以便对什么是“当前session”的范围和上下文(scope and context)的定义进行拔插。
在Spring @Transactional声明式事务管理,”currentSession”的定义为: 当前被 Spring事务管理器 管理的Session,此时应配置:
hibernate.current_session_context_class=org.springframework.orm.hibernate4.SpringSessionContext。
此处一定注意 使用 hibernate4,在不使用OpenSessionInView模式时,在使用getCurrentSession()时会有如下问题: 当有一个方法list 传播行为为Supports,当在另一个方法getPage()(无事务)调用list方法时会抛出org.hibernate.HibernateException: No Session found for current thread 异常。 这是因为getCurrentSession()在没有session的情况下不会自动创建一个,不知道这是不是Spring3.1实现的bug。 因此最好的解决方案是使用REQUIRED的传播行为。
解决方案:
解决人:
备注:
三、Spring
四、SSH项目整合
4.1 ClassCastException
异常描述:
在使用spring(v4)和hibernate(v4)开发应用程序时发生如下异常
异常信息:
ClassCastException: org.springframework.orm.hibernate4.SessionHolder cannot be cast to org.springframework.orm.hibernate3.SessionHolder
at org.springframework.orm.hibernate3.SessionFactoryUtils.doGetSession(SessionFactoryUtils.java:293)
at org.springframework.orm.hibernate3.SessionFactoryUtils.getSession(SessionFactoryUtils.java:239)
at org.springframework.orm.hibernate3.HibernateTemplate.getSession(HibernateTemplate.java:461)
异常原因:
一个可能的原因是DAO类中使用了Hibernate v3的HibernateDaoSupport
解决方案:
改用下面的类恢复正常:org.springframework.orm.hibernate4.support.HibernateDaoSupport
解决人:
备注:
4.2 NoSuchBeanDefinitionException
异常描述:
org.springframework.beans.factory.NoSuchBeanDefinitionException无法自动注入,Spring容器无法创建类
异常信息:
No qualifying bean of type [org.hibernate.SessionFactory] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}
at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:1380)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1126)
异常原因:
1.检查domain和service的applicationContext.xml文件,检查sessionFactory和transactionManager的bean标签的class
解决方案:
解决人:
备注:
复制项目的配置文件是容易忽略框架的版本的差异
4.3 NoSuchBeanDefinitionException
异常描述:
持久层框架选用Spring Data JPA,启动项目没问题,服务器发起请求时,经过过滤器,报错NoSuchBeanDefinitionException
异常信息:
Servlet.service() for servlet [jsp] in context with path [] threw exception
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'sessionFactory' is defined
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:704)
at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1175)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:284)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1060)
at org.springframework.orm.hibernate4.support.OpenSessionInViewFilter.lookupSessionFactory(OpenSessionInViewFilter.java:190)
at org.springframework.orm.hibernate4.support.OpenSessionInViewFilter.lookupSessionFactory(OpenSessionInViewFilter.java:175)
at org.springframework.orm.hibernate4.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:126)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
异常原因:
Web.xml是复制纯SSH的, Spring Data JPA框架里面用EntityManager代替了session.
解决方案:
Web.xml不需要配置OpenSessionInViewFilter
解决人:
施文
备注:
ERROR Dispatcher:38 - Exception occurredduring processing request: null
4.4 NullPointerException
异常描述:
空指针异常ERROR Dispatcher:38 - Exception occurred during processing request: null
异常信息:
ERROR Dispatcher:38 - Exception occurred during processing request: null
at com.hyj.bos.service.standard.impl.StandardServiceImpl.saveStandard(StandardServiceImpl.java:30)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
异常原因:
Service层的dao属性没有加@Autowired注解
解决方案:
加上注解
解决人:
Hyj
备注:
4.5 LazyInitializationException
异常描述:
页面展示所有数据时,懒加载异常
异常信息:
failed to lazily initialize a collection of role: com.hyj.bos.domain.Staff.decidedzones, could not initialize proxy - no Session
at org.hibernate.collection.internal.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:566)
at org.hibernate.collection.internal.AbstractPersistentCollection.withTemporarySessionIfNeeded(AbstractPersistentCollection.java:186)
at org.hibernate.collection.internal.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:545)
异常原因:
解决方案:
在domain模块的pom.xml文件加上json序列化插件struts2-json-plugin.
加载Staff中Decidedzone信息,使用@JSON注解排除
Web 模块的struts2-json-plugin.jar插件坐标从pom中移除!
解决人:
Hyj
备注:
五、SSH启动报错
5.1 java.net.BindException
异常描述:
Address already in use: JVM_Bind <null>:80
异常信息:
异常原因:
解决方案:
解决人:
Hyj
备注:
5.2 MySQLIntegrityConstraintViolationException
异常描述:
MySQLIntegrityConstraintViolationException
异常信息:
com.mysql.jdbc.exceptions.MySQLIntegrityConstraintViolationException: Duplicate entry 'hyj@163.com' for key 'UK_cfnuhut3xdl14kbunonsc5i6c'
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:931)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2985)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1631)
异常原因:
解决方案:
解决人:
Hyj
备注:
6、Maven启动报错
6.1 没有将父工程最先发布到仓库方便子工程继承
异常描述:
Dao, service utils等子项目执行install命令时报错
异常信息:
Failed to execute goal on projectbos-utils: Could not resolve dependencies for project
com.hyj:bos-utils:jar:0.0.1-SNAPSHOT:
Failed to collect dependencies at com.hyj:bos-domain:jar:0.0.1-SNAPSHOT:
Failed to read artifact descriptor for com.hyj:bos-domain:jar:0.0.1-SNAPSHOT:
Could not find artifact com.hyj:bos-parent:pom:0.0.1-SNAPSHOT -> [Help 1]
The import com.hyj.bos.service cannot be resolved
UserAction.java /bos-web/src/main/java/com/hyj/bos/web/action line 10 Java Problem
异常原因:
解决方案:
解决人:
备注:
6.2
- 常见异常
- 常见异常
- 常见异常
- 常见异常
- 常见异常
- 常见异常
- 常见异常
- 常见异常
- 常见异常
- 常见异常
- 常见异常
- 常见异常
- 常见异常
- 常见异常
- 常见异常
- 常见异常
- 常见异常
- 常见异常
- 93. Restore IP Addresses
- 多字段查询,多条件查询写法
- hbase启动后hmaster闪挂
- [leetcode]108. Convert Sorted Array to Binary Search Tree@Java解题报告
- Java设计模式--工厂方法模式【Factory Method Pattern】
- 常见异常
- CentOS6.5下源码安装gcc-4.9.4
- JavaMail发送邮件
- 线段树笔记
- 框架学习系列 mybatis 第十篇 mybatis 全局配置文件
- 安卓常用,比较有用的第三方框架
- servlet或action中获取项目物理路径或虚拟路径
- SIFT/ SURF/ORB综述
- 查看Linux 、Apache 、 MySQL 、 PHP 版本的方法