ss2H框架常遇到的错误记录

本文汇总了Spring框架中常见的异常问题及其解决方案,包括Bean创建失败、资源依赖注入失败、Hibernate数据保存失败等,并提供了详细的排查步骤和技术建议。

一、

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'activityServiceImp' defined in file [E:\Workspaces\.metadata\.me_tcat7\webapps\OldArticleSwap\WEB-INF\classes\com\oas\serviced\imp\ActivityServiceImp.class]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [com.oas.serviced.imp.ActivityServiceImp]: Constructor threw exception; nested exception is java.lang.NullPointerException

解决方案:在activityServiceImp的@service下添加@Scope("prototype")【@Scope("prototype")为bean的作用域】


二、

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jdbcBaseDao': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'dataSource' is defined

问题:没有找到bean。

解决方案:有可能,1、没有<bean id="jdbcBaseDao" class="com.oas.action.JdbcBaseDao" />,2、<bean>里的id的大小写问题,创建对象这个对象的名字要与这个id名字一模一样)因为依赖注入默认把类名的第一个字母默认为小写。


三、

程序完成保存任务,没有报任何错误,getHibernateTemplate().save();但是数据没添加到数据库里。

解决办法:在hibernate.cfg.xml里面加入 <property name="connection.autocommit">true </property>

如果还是不能解决问题,那你要注意下antlr.jar 这个jar包是hibernate把hql转换成sql的必备包!


四、org.hibernate.LazyInitializationException: could not initialize proxy - no Session

总结:原因是hibernate的session已经关闭,集合没有被初始化。在hibernate中:hibernate3 默认支持延迟加载(lazy="proxy"我们可以把proxy看作是true),hibernate2 默认立即加载 (lazy="false")。

      在hibernate3中,所有的实体设置文件(user.hbm.xml)中的lazy属性都被默认设成了true,就是当这个类没有被调用时,延时加载,导致了以上情况的发生,在配置文件中将lzay属性设为false就可以了。

解决方案:在实体的xml的<class name="com.oas.entity.User" table="TABOAS_USER" schema="SUOAS" lazy="false" >添加azy="false"


五、

java.lang.reflect.InvocationTargetException
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:452)
com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:291)

........

java.lang.NoClassDefFoundError: javax/persistence/Entity

........

解决方案:添加hibernate-jpa-2.0-api-1.0.1.Final.jar包


Unable to instantiate Action, com.bywx.action.WeiXinApi,  defined for 'WeiXinApi' in namespace '/'com.bywx.action.WeiXinApi
	com.opensymphony.xwork2.DefaultActionInvocation.createAction(DefaultActionInvocation.java:318)
	com.opensymphony.xwork2.DefaultActionInvocation.init(DefaultActionInvocation.java:399)
	com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:198)
  解决方案

<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值