Tx Data Source主要用在EJB的数据库事务处理中!如果仅仅是在JSP或者servlet用的话就不要配置成Tx Data Srouce

解决方案 »

  1.   

    那为什么我用jsp访问EJB非要用Data Source,不然就出现
    java.sql.SQLException: Cannot call Connection.commit in distributed transaction.
    Transaction Manager will commit the resource manger when the distributed transaction is committed.
      

  2.   

    因为无论jsp还是servlet,访问ejb和数据源等都是通过JNDI来查找服务的。J2EE里,所有的服务都可以通过jndi来获得,因此你的资源都要注册jndi上,这样才能供别人使用。因此,EJB需要使用数据源时,必须通过jndi来查找,而你必须事先配置好,并分配给它一个jndi名字。
      

  3.   

    不是jndi名字的问题,我已经配置好了,用Data Source就没这样的问题,但按道理应用
    Tx Data Source的数据源
      

  4.   

    偶用servlet访问ejb用的就是Tx Data Srouce没有问题阿!?