Struts Spring Hibernate 框架整合时候出现的问题
2011-09-01 09:35
716 查看
1.Tomcat和项目的lib目录下均要加入mysql数据库驱动mysql-connector-java-5.0.8-bin.jar。在bean中配置数据源的时候,请注意严格按照下面方式配置:
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost:3306/drdatabase"></property>
<property name="username" value="root"></property>
<property name="password" value="123456"></property>
<property name="maxActive" value="100"></property>
<property name="maxIdle" value="30"></property>
<property name="maxWait" value="500"></property>
<property name="defaultAutoCommit" value="true"></property>
</bean>
上面的黑色部分我曾经出错了,导致Cannot Load JDBC 异常。
2. Struts action 配置与Spring配置时候出现的问题:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="doctors" extends="struts-default">
<action name ="savePatient" class="savePatientAction">
<result name="redirect">ListPatient.action</result>
<result name="input">/AddPatients.jsp</result>
</action>
</package>
</struts>
name的名称与显示层的JSP的Form表单提交名称一致,class的名称必须与在Spring中配置的bean的id号一致:
<bean id="savePatientAction" class="com.chenx.action.SavePatientAction">
<property name="patientService">
<ref bean="patientService"/>
</property>
</bean>
3.
There is no Action mapped for namespace / and action name login
首先出现这种错误是因为配置文件没找到,检查一下你的struts.xml是否在classes 文件夹下
路径:“安装Tomcat 的路径”\webapps\“你工程的名称”\WEB-INF\classes
其次,查看你的struts.xml这个文件名称是否与“struts.xml”一样,并且检查其中内容 是否正确,每一个属性都要检查
注意拼写错误!!!!!!
再次,如果没用<s:form>的话 形式应该是这样:<form action="strut/login.action" >
如果你用的是<s:form >形式 那应该是:<s:form name ="form1" action ="login" namespace="/strut">
↓↓↓要记住↓↓↓
form 标签 没有namespace属性
s:form 标签 有namespace属性
4. 框架整合时候asm.jar 以及 asm.2.0.6.jar均可以删除,Spring和Hibernate的冲突带来的。还有xerecs也可以删除。
5.异常1:not-null property references a null or transient value
解决方法:将“一对多”关系中的“一”方,not-null设置为false
(参考资料:http://www.thearcmind.com/confluence/pages/viewpage.action?pageId=212)
异常2:org.hibernate.TransientObjectException: object references an unsaved transient instance
解决方法:cascade="save-update,persist"
(参考资料:http://www.laliluna.de/254.html)
异常3:org.hibernate.QueryException: could not resolve property
解决方法:"from Category category where category.userID = :userID"修改为"from Category category where userID = :userID"或者"from Category category where category.user.id = :userID"
(参考资料:http://www.laliluna.de/277.html)
异常4:could not initialize proxy - the owning Session was closed
解决方法:设置lazy为false
(参考资料:http://forum.springframework.org/showthread.php?t=27993)
6.Spring 中的bean默认为单例模式,type=“singleton”,在消息映射或是登陆的时候就会出现各种各样的异常,比如我设置成功的hibernate后台打印的消息并不是请求一次就打印一次,而是有丢失。
因此所有的bean必须为多态模式。切记!
<bean id="LoginAction" class="com.chenx.action.LoginAction" scope="prototype">
<property name="userService">
<ref bean="userService"/>
</property>
</bean>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost:3306/drdatabase"></property>
<property name="username" value="root"></property>
<property name="password" value="123456"></property>
<property name="maxActive" value="100"></property>
<property name="maxIdle" value="30"></property>
<property name="maxWait" value="500"></property>
<property name="defaultAutoCommit" value="true"></property>
</bean>
上面的黑色部分我曾经出错了,导致Cannot Load JDBC 异常。
2. Struts action 配置与Spring配置时候出现的问题:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="doctors" extends="struts-default">
<action name ="savePatient" class="savePatientAction">
<result name="redirect">ListPatient.action</result>
<result name="input">/AddPatients.jsp</result>
</action>
</package>
</struts>
name的名称与显示层的JSP的Form表单提交名称一致,class的名称必须与在Spring中配置的bean的id号一致:
<bean id="savePatientAction" class="com.chenx.action.SavePatientAction">
<property name="patientService">
<ref bean="patientService"/>
</property>
</bean>
3.
There is no Action mapped for namespace / and action name login
首先出现这种错误是因为配置文件没找到,检查一下你的struts.xml是否在classes 文件夹下
路径:“安装Tomcat 的路径”\webapps\“你工程的名称”\WEB-INF\classes
其次,查看你的struts.xml这个文件名称是否与“struts.xml”一样,并且检查其中内容 是否正确,每一个属性都要检查
注意拼写错误!!!!!!
再次,如果没用<s:form>的话 形式应该是这样:<form action="strut/login.action" >
如果你用的是<s:form >形式 那应该是:<s:form name ="form1" action ="login" namespace="/strut">
↓↓↓要记住↓↓↓
form 标签 没有namespace属性
s:form 标签 有namespace属性
4. 框架整合时候asm.jar 以及 asm.2.0.6.jar均可以删除,Spring和Hibernate的冲突带来的。还有xerecs也可以删除。
5.异常1:not-null property references a null or transient value
解决方法:将“一对多”关系中的“一”方,not-null设置为false
(参考资料:http://www.thearcmind.com/confluence/pages/viewpage.action?pageId=212)
异常2:org.hibernate.TransientObjectException: object references an unsaved transient instance
解决方法:cascade="save-update,persist"
(参考资料:http://www.laliluna.de/254.html)
异常3:org.hibernate.QueryException: could not resolve property
解决方法:"from Category category where category.userID = :userID"修改为"from Category category where userID = :userID"或者"from Category category where category.user.id = :userID"
(参考资料:http://www.laliluna.de/277.html)
异常4:could not initialize proxy - the owning Session was closed
解决方法:设置lazy为false
(参考资料:http://forum.springframework.org/showthread.php?t=27993)
6.Spring 中的bean默认为单例模式,type=“singleton”,在消息映射或是登陆的时候就会出现各种各样的异常,比如我设置成功的hibernate后台打印的消息并不是请求一次就打印一次,而是有丢失。
因此所有的bean必须为多态模式。切记!
<bean id="LoginAction" class="com.chenx.action.LoginAction" scope="prototype">
<property name="userService">
<ref bean="userService"/>
</property>
</bean>
相关文章推荐
- Struts Spring Hibernate 框架整合时候出现的问题
- Hibernate和Spring整合的时候出现问题,注入Action出错
- struts+spring+hibernate整合出现的问题解决方法
- 关于使用SSM整合的时候,使用hibernate校验框架出现500异常问题解决
- idea整合struts和spring和hibernate时候的导jar错误:Unable to load configuration. - action -
- JDK6+Tomcat6+MyEclipse6,整合Struts,Spring,Hibernate出现异常
- [转] 浅谈ssh(struts,spring,hibernate三大框架)整合的意义及其精髓
- struts2.0、hibernate3、spring2.5框架整合流程实例
- ssh(Struts+spring+Hibernate)三大框架整合-简述
- Struts、Spring、Hibernate框架整合流程
- 浅谈ssh(struts,spring,hibernate三大框架)整合的意义及其精髓
- SSH : struts、spring、hibernate等框架的整合
- (转)hibernate-5.0.7+struts-2.3.24+spring-4.2.4三大框架整合
- 12月1日struts、spring、hibernate等框架的整合培训日记
- 使用Spring整合Hibernate出现无法自动建立表的问题
- 浅谈ssh(struts,spring,hibernate三大框架)整合的意义及其精髓
- SpringMVC+Spring+Hibernate整合出现Executing an update/delete query问题
- spring和struts整合时出现的两个循环出现的问题
- 整合spring,struts,hibernate框架时你都犯了哪些错?
- Spring+Struts+Hibernate框架整合配置