求一个hibernate 使用jta 分布式事务的一个例子 求一个hibernate jta 分布式事务的一个例子要求:不是web项目不考虑容器(websphere\weblogic等),直接存java工程可以支持的例子 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我做过一个测试,环境是Jboss 数据库是mysql建一个EJB项目添加JPA支持,在Jboss boss-4.0.5.GA\server\default\deploy目录下配置mysql的数据源(有几个配置几个),下面是我配置的数据源<datasources> <local-tx-datasource> <jndi-name>MySqlDS</jndi-name> <connection-url>jdbc:mysql://localhost:3306/ejb3</connection-url> <driver-class>com.mysql.jdbc.Driver</driver-class> <user-name>root</user-name> <password>root</password> <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name> <metadata> <type-mapping>mySQL</type-mapping> </metadata> </local-tx-datasource> <local-tx-datasource> <jndi-name>MySqlDS01</jndi-name> <connection-url>jdbc:mysql://localhost:3306/ejb3_01</connection-url> <driver-class>com.mysql.jdbc.Driver</driver-class> <user-name>root</user-name> <password>root</password> <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name> <metadata> <type-mapping>mySQL</type-mapping> </metadata> </local-tx-datasource></datasources>然后在你的persistence.xml使用你配置的数据源,事务管理方式选用JTA具体代码如下: <persistence-unit name="test00" transaction-type="JTA"> <jta-data-source>java:/MySqlDS</jta-data-source> <class>com.bjsxt.ejb.jpa.User</class> <exclude-unlisted-classes>true</exclude-unlisted-classes> <properties> <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/> <property name="hibernate.hbm2ddl.auto" value="update"/> <property name="hibernate.show_sql" value="true"/> </properties> </persistence-unit> <persistence-unit name="test01" transaction-type="JTA"> <jta-data-source>java:/MySqlDS01</jta-data-source> <class>com.bjsxt.ejb.jpa.Person</class> <exclude-unlisted-classes>true</exclude-unlisted-classes> <properties> <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/> <property name="hibernate.hbm2ddl.auto" value="update"/> <property name="hibernate.show_sql" value="true"/> </properties> </persistence-unit>接着就是编写你自己的EJB了,然后写一个客户端去访问 远程的、本地的、webservice的都行 有不需要web容器支持的例子不 EJB的客户端有好几种,不一定要WEB容器支持啊你就写一个JAVA PROJECT的项目然后在里面调用EJB也可以 JTA 事务不是需要 Web、Servlet 容器支持,而是需要 J2EE 应用服务器支持,JTA 必须用在 J2EE 环境中,而不是 J2SE 环境中。如果需要在 J2SE 环境中支持分布式事务的话(比如说在 tomcat 中),可以去看看 jOTM 这个开源分布式事务框架。 表单页面的数据提交后是怎样写进数据库里的 JSP如何页面下载文件 freemarker中使用Java自定义标签问题 关于用FileStream的异步写的方法多线程写日志的问题。 是否能保证写入的顺序? 跪求!!js中load的页面如何使用ajax读取读取属性 Struts2标签问题 struts1.2+hibernate三十步让你学成下山,直接挑战东方不败 很急,高手进(高分!) struts下传参数到ActionForm的问题,急,在线等 在jbuider+weblogic上部署cmp问题 class12.jar 1.07M与1.14M的区别 关于ssh中struts标签的问题
建一个EJB项目添加JPA支持,在Jboss boss-4.0.5.GA\server\default\deploy目录下配置mysql的
数据源(有几个配置几个),下面是我配置的数据源
<datasources>
<local-tx-datasource>
<jndi-name>MySqlDS</jndi-name>
<connection-url>jdbc:mysql://localhost:3306/ejb3</connection-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<user-name>root</user-name>
<password>root</password>
<exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name> <metadata>
<type-mapping>mySQL</type-mapping>
</metadata>
</local-tx-datasource>
<local-tx-datasource>
<jndi-name>MySqlDS01</jndi-name>
<connection-url>jdbc:mysql://localhost:3306/ejb3_01</connection-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<user-name>root</user-name>
<password>root</password>
<exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>
<metadata>
<type-mapping>mySQL</type-mapping>
</metadata>
</local-tx-datasource>
</datasources>然后在你的persistence.xml使用你配置的数据源,事务管理方式选用JTA
具体代码如下: <persistence-unit name="test00" transaction-type="JTA">
<jta-data-source>java:/MySqlDS</jta-data-source>
<class>com.bjsxt.ejb.jpa.User</class>
<exclude-unlisted-classes>true</exclude-unlisted-classes>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
<property name="hibernate.hbm2ddl.auto" value="update"/>
<property name="hibernate.show_sql" value="true"/>
</properties>
</persistence-unit>
<persistence-unit name="test01" transaction-type="JTA">
<jta-data-source>java:/MySqlDS01</jta-data-source>
<class>com.bjsxt.ejb.jpa.Person</class>
<exclude-unlisted-classes>true</exclude-unlisted-classes>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
<property name="hibernate.hbm2ddl.auto" value="update"/>
<property name="hibernate.show_sql" value="true"/>
</properties>
</persistence-unit>接着就是编写你自己的EJB了,然后写一个客户端去访问 远程的、本地的、webservice的都行
你就写一个JAVA PROJECT的项目然后在里面调用EJB也可以
JTA 事务不是需要 Web、Servlet 容器支持,而是需要 J2EE 应用服务器支持,JTA 必须用在 J2EE 环境中,而不是 J2SE 环境中。如果需要在 J2SE 环境中支持分布式事务的话(比如说在 tomcat 中),可以去看看 jOTM 这个开源分布式事务框架。