在com.jdon.jivejdon.service.util中有定义了一个JtaTransactionUtil 事务工具类
private TransactionManager transactionManager;
public JtaTransactionUtil(String[] txpram) { if (txpram[0].equals(JTA)) { try { transactionManager = (TransactionManager) new InitialContext().lookup(txpram[1]); } catch (NamingException e) { e.printStackTrace(); } } }
|
在com.jdon.jivejdon.service.services.xml有一段定义如下:
<!-- Tansaction JNDI --> <component name="jtaTransactionUtil" class="com.jdon.jivejdon.service.util.JtaTransactionUtil"> <!--<constructor value="JTA"/> <constructor value="java:/TransactionManager"/> --> <constructor value="JDBC"/>
|
这里不是使用JDBC吗,如果是的话,那上面JtaTransactionUtil类怎么能够取得transactionManager实例对象呢,如果取不到,那么JtaTransactionUtil的共它方法怎么能用呀
比如:下面的方法怎么能使用呢
public void beginTransaction() throws Exception { if (!checkIsJTA()) return; transactionManager.begin(); }
public void commitTransaction() throws Exception { if (!checkIsJTA()) return; transactionManager.commit(); }
public void rollback() { if (transactionManager != null) { try { transactionManager.rollback(); } catch (Exception ex) { } } }
|
真是想不通呢,如果上面的配置配成
<!-- Tansaction JNDI -->
<component name="jtaTransactionUtil"
class="com.jdon.jivejdon.service.util.JtaTransactionUtil">
<constructor value="JTA"/>
<constructor value="java:/TransactionManager"/>
<!--<constructor value="JDBC"/>-->
这样才对吧,但是论坛像上面的都可以成功,所以想不明白