我有一个j2ee应用程序在Spring框架上运行。我正尝试使用aop应用事务管理,但显然它不起作用。我正在尝试将事务应用于名为RegisterBLogic的类中,函数名称为execute(ParamObject obj)。我的功能插入到数据库中。我也把一个抛出异常我的函数强制抛出异常。申请交易管理春天
内userManagerContext:
<bean id="RegisterBLogic"
scope="singleton"
class="jp.co.anicom.fw.web.usermanager.blogic.RegisterBLogic">
<property name="queryDAO"
ref="queryDAO" /> <property
name="updateDAO" ref="updateDAO" />
</bean>
里面的ApplicationContext
<bean id="TerasolunaDataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="PrototypeDataSource" />
</bean>
<tx:advice id="transactionInterceptor" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="insert*" propagation="REQUIRED"
rollback-for="java.lang.Exception" />
<tx:method name="execute*" propagation="REQUIRED"
rollback-for="java.lang.Exception" />
<tx:method name="*" propagation="REQUIRED" read-only="true" />
</tx:attributes>
</tx:advice>
<!-- AOPの設定 -->
<aop:config>
<aop:pointcut id="blogicBeans" expression="bean(*BLogic)" />
<aop:pointcut id="serviceBeans" expression="bean(*Service)" />
<aop:advisor pointcut-ref="blogicBeans" advice-ref="transactionInterceptor" />
<aop:advisor pointcut-ref="serviceBeans" advice-ref="transactionInterceptor" />
</aop:config>
呀存在,这些豆子。我在userManagerCOntext.xml下有这个bean声明。这个xml是通过加载在struts config中的
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation"
value="/WEB-INF/userManager/userManagerContext.xml"/>
</plug-in>
我发现了这个问题。目前我正在使用来自JNDI的数据源。 类=“org.springframework.jndi.JndiObjectFactoryBean”>
我改成与物业正常的数据源defaultAutoCommit设置为false
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName"
value="oracle.jdbc.OracleDriver" />
<property name="url"
value="jdbc:oracle:thin:@192.168.178.82:1521:anicom" />
<property name="username" value="jay" />
<property name="password" value="jay" />
<property name="initialSize" value="5" />
<property name="maxActive" value="10" />
<property name="defaultAutoCommit" value="false" />
</bean>
如何使用JNDI数据源,但能将有点类似defaultAutoCommit的属性设置为false。我正在使用Oracle weblogic服务器,并且我的数据源存储在其中,通过JNDI访问
我已经更新了我的问题上面.. tnx – cedric 2010-03-10 10:40:25
嗨。我有新的进展。请检查上面的更新。我现在的问题是使用jndi时,我如何设置一个类似于defaultAutoCommit的属性并将其设置为false。 – cedric 2010-03-10 12:10:04
如果你通过JNDI获得它,也许另一端应该初始化它?我的意思是JNDI bean被创建/注册的地方。 – 2010-03-10 16:17:20