javax.servlet.ServletException: Could not roll back Hibernate transaction; nested exception is org.hibernate.TransactionException: JDBC rollback failed
org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:535)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:433)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
cn.zg.filter.EncodingFilter.doFilter(EncodingFilter.java:35)
com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118)
com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52)
root cause org.springframework.transaction.TransactionSystemException: Could not roll back Hibernate transaction; nested exception is org.hibernate.TransactionException: JDBC rollback failed
org.springframework.orm.hibernate3.HibernateTransactionManager.doRollback(HibernateTransactionManager.java:606)
org.springframework.transaction.support.AbstractPlatformTransactionManager.doRollbackOnCommitException(AbstractPlatformTransactionManager.java:633)
org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:528)
org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:473)
org.springframework.transaction.interceptor.TransactionAspectSupport.doCommitTransactionAfterReturning(TransactionAspectSupport.java:267)
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170)
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:176)
$Proxy8.login(Unknown Source)
cn.zg.action.ShaolinAdminAction.login(ShaolinAdminAction.java:40)
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:585)
org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:270)
org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187)
org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:106)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
cn.zg.filter.EncodingFilter.doFilter(EncodingFilter.java:35)
com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118)
com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52)
org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:535)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:433)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
cn.zg.filter.EncodingFilter.doFilter(EncodingFilter.java:35)
com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118)
com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52)
root cause org.springframework.transaction.TransactionSystemException: Could not roll back Hibernate transaction; nested exception is org.hibernate.TransactionException: JDBC rollback failed
org.springframework.orm.hibernate3.HibernateTransactionManager.doRollback(HibernateTransactionManager.java:606)
org.springframework.transaction.support.AbstractPlatformTransactionManager.doRollbackOnCommitException(AbstractPlatformTransactionManager.java:633)
org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:528)
org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:473)
org.springframework.transaction.interceptor.TransactionAspectSupport.doCommitTransactionAfterReturning(TransactionAspectSupport.java:267)
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170)
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:176)
$Proxy8.login(Unknown Source)
cn.zg.action.ShaolinAdminAction.login(ShaolinAdminAction.java:40)
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:585)
org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:270)
org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187)
org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:106)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
cn.zg.filter.EncodingFilter.doFilter(EncodingFilter.java:35)
com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118)
com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52)
解决方案 »
- java是不是把所有数组和 类(class) 都放在 堆,而不是 栈 里面?
- 一个关于Set的问题!
- HashMap和Hashtable 之原代码详解 (本人原创)
- 为什么有些类的变量命名为 ‘_XJXJ’ 这样的形式呢?
- java中如何控制输出格式??
- 非Apache高手莫入!奇怪+恐怖!
- [一个菜鸟的求助]声明一个图形对象的问题,救急!!
- 散分!!ResultSet中的绝对定位
- 为什么我的JBuilder7装不了?
- 在JBuilder创建一工程?这句什么意思?
- 在调试器中方法1和方法2都从一个包中得到相同的类型的对象,如何在调试器中判断这两个对象是否是同一对象?
- 将服务器的图像保存到客户机的内存里
感觉与spring的hibernate事务管理有关系。但不知道问题在那里。
================action======================
public class ShaolinAdminAction extends DispatchAction { private ShaolinAdminManagerI manager = null; public void setShaolinAdminManagerI(ShaolinAdminManagerI manager) {
this.manager = manager;
}
public ActionForward login(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
ActionMessages errors = new ActionMessages();
DynaValidatorForm df = (DynaValidatorForm) form;
String userName = df.getString("userName");
String password = df.getString("password");
String login = manager.login(userName, password, request
.getRemoteAddr());
if (StringUtils.isNotEmpty(login)) {
request.getSession().setAttribute("ADMIN_NAME", login);
return mapping.findForward(SUCCESS);
} else {
errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(
"errors.login"));
saveErrors(request, errors);
return mapping.getInputForward();
}
}
}
====================对应的配置文件====================
<bean name="/login" class="cn.zg.action.ShaolinAdminAction"
singleton="false">
<property name="shaolinAdminManagerI">
<ref bean="shaolinAdminManager" />
</property>
</bean>======================service===========================
public class ShaolinAdminManager extends BaseManager implements
ShaolinAdminManagerI { protected ShaolinAdminDAOI dao; public void setShaolinAdminDAOI(ShaolinAdminDAOI dao) {
this.dao = dao;
}
public String login(String userName, String password, String ip) {
ShaolinAdmin shaolinAdmin = dao.login(userName, password, ip);
if (shaolinAdmin != null) {
dao.updateObject(shaolinAdmin);
return shaolinAdmin.getAdminName();
}
return null;
}
}
===================dao======================
public class ShaolinAdminDAO extends BaseDAO implements ShaolinAdminDAOI {public ShaolinAdmin login(String userName, String password, String ip) {
String hql = "select obj from ShaolinAdmin obj where obj.adminName='"
+ userName + "' and obj.adminPass='" + password + "'";
List l = getObjects(hql, 0, 1);
if (l != null && l.size() > 0) {
ShaolinAdmin shaolinAdmin = (ShaolinAdmin) l.get(0);
shaolinAdmin.setLastLogin(new Date());
shaolinAdmin.setLastIp(ip);
return shaolinAdmin;
}
return null;
}
}
*@作者:赵刚 2006-6-14
*/
package cn.zg.dao.impl;import java.io.Serializable;
import java.util.List;import org.hibernate.Query;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;import cn.zg.dao.BaseDAOI;public class BaseDAO extends HibernateDaoSupport implements BaseDAOI {
protected int count = 0; public void setCount(String hql) {
Query query = getHibernateTemplate().getSessionFactory().openSession()
.createQuery(hql);
this.count = Integer.parseInt(query.uniqueResult().toString());
} public List getObjects(String hql, int start, int range) {
Query query = getHibernateTemplate().getSessionFactory().openSession()
.createQuery(hql);
query.setFirstResult(start);
if (range > 0) {
query.setMaxResults(range);
}
return query.list();
} public Integer saveObject(Object o) {
Integer i = (Integer) getHibernateTemplate().save(o);
System.out.println(i);
//getSession().beginTransaction().commit();
return i;
} public void removeObject(Object o) {
getHibernateTemplate().delete(o);
} public void updateObject(Object o) {
getHibernateTemplate().update(o);
} public Object getObject(Class clazz, Serializable id) {
return getHibernateTemplate().load(clazz, id, null);
} public int getCount() {
return this.count;
}}
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation">
<value>classpath:/hibernate.cfg.xml</value>
</property>
</bean> <!-- Transaction manager for a single Hibernate SessionFactory (alternative to JTA) -->
<bean id="myTransactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="mySessionFactory" />
</property>
</bean>