首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring / Hibernate / appfuse中的事务

Spring / Hibernate / appfuse中的事务
EN

Stack Overflow用户
提问于 2011-08-23 02:06:51
回答 1查看 2.1K关注 0票数 0

作为此处问题的后续内容:Spring 2.0 Annotations and ant

我们能够让注释正常工作(@ Transaction ),并尝试手动编写事务代码。

在这两种情况下,我们都遇到了一些问题。这是一个appfuse 1.9.4项目,我们手动升级到更新的Hibernate项目。这是使用Spring2.0。

我想要做的是将整个web服务包装在一个数据库“事务”中,这样整个“调用”就是原子的。我知道做这件事的“最简单”的方法是@Transactional?

为此,我们在类中添加了:

代码语言:javascript
复制
import org.springframework.transaction.annotation.Transactional;

然后,在方法(它是公共的)旁边,我们做了:

代码语言:javascript
复制
@Transactional (readOnly = false, rollbackFor=Exception.class)
public List processEmployees(List employees){
  ....
}

在applicationContext-hibernate.xml中,我添加了:

代码语言:javascript
复制
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    <property name="sessionFactory" ref="sessionFactory"/>
</bean>

<tx:annotation-driven transaction-manager="transactionManager"/>

现在,当我启动Tomcat时,我得到了这个可爱的错误:

代码语言:javascript
复制
[Scheduler] 2011-08-22 12:57:03,032 ERROR [main] ContextLoader.initWebApplicationContext(205) | Context initialization failed
org.springframework.beans.factory.BeanDefinitionStoreException: Line 153 in XML document from ServletContext resource [/WEB-INF/applicationContext-hibernate.xml] is invalid; nested exception is org.xml.sax.SAXParseException: The prefix "tx" for element "tx:annotation-driven" is not bound.
Caused by: 
org.xml.sax.SAXParseException: The prefix "tx" for element "tx:annotation-driven" is not bound.

我们使用的是Spring2.0,但没有“配置”任何AOP。

有什么想法吗?

或者,我很乐意用Transaction.commit()来做这件事,但是走那条路由会抛出一条关于事务永远不会启动的消息。

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-08-23 02:10:31

您没有在applicationContext-hibernate.xml中定义"tx" namespace。因此,XML解析器无法识别元素。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7151606

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档