tomcat不支持事务,如果应用使用了容器事务,就不能使用tomcat了,这个问题可以通过JOTM插件解决。
今天试了一下,果然简单又好用,共分3步:
1、
下载JOTM,将以下文件添加到$TOMCAT_HOME/common/lib/:
jotm.jar
jotm_jrmp_stubs.jar
jotm_iiop_stubs.jar
ow_carol.jar
jta-spec1_0_1.jar
jts1_0.jar
objectweb-datasource.jar
xapool.jar
howl.jar
connector-1_5.jar
2、
新建一个carol.properties文件,置于$TOMCAT_HOME/common/classes/,文件内容如下:
# JNDI (Protocol Invocation)
carol.protocols=jrmp
# Local RMI Invocation
carol.jvm.rmi.local.call=true
# do not use CAROL JNDI wrapper
carol.start.jndi=false
# do not start a name server
carol.start.ns=false
# Naming Factory
carol.jndi.java.naming.factory.url.pkgs=org.apache.naming
3、
在数据源的配置文件中增加如下
<Resource name="UserTransaction" auth="Container"
type="javax.transaction.UserTransaction"/>
<ResourceParams name="UserTransaction">
<parameter>
<name>factory</name>
<value>org.objectweb.jotm.UserTransactionFactory</value>
</parameter>
<parameter>
<name>jotm.timeout</name>
<value>60</value>
</parameter>
</ResourceParams>
数据源的配置文件在/conf/Catalina目录下
这样就OK了,很方便。
此方法只在5.0中可以,5.5及以上版本可能有所差别。