我目前正在尝试将我的Web应用程序从jboss 5.1升级到jboss 7.1.1.Final
在我的jboss.xml中,我已经配置了一些自定义ejb超时,如下所示:
<session>
<ejb-name>MSServiceEJB</ejb-name>
<jndi-name>ejb/MSServiceEJB</jndi-name>
<local-jndi-name>ejb/LocalMSServiceEJB</local-jndi-name>
<method-attributes>
<method>
<method-name>*</method-name>
<transaction-timeout>3600</transaction-timeout>
</method>
</method-attributes>
</session>
jboss 7忽略了jboss.xml,在哪里可以指定我的ejb 2.1事务超时?
答案 0 :(得分:7)
每
替换jboss.xml部署描述符文件
jboss-ejb3.xml部署描述符将jboss.xml部署描述符替换为 覆盖并添加Java Enterprise提供的功能 Edition(EE)定义了ejb3-jar.xml部署描述符。新文件 与jboss.xml不兼容,现在忽略了jboss.xml 部署。
您需要创建jboss-ejb3.xml
并将配置放在其中。
它看起来像这样:
<assembly-descriptor>
<container-transaction>
<method>
<ejb-name>EJBName</ejb-name>
<method-name>methodName</method-name>
<method-intf>Local</method-intf>
</method>
<tx:trans-timeout>
<tx:timeout>500</tx:timeout>
<tx:unit>Seconds</tx:unit>
</tx:trans-timeout>
</container-transaction>
</assembly-descriptor>
您正在使用EJB2.x
,因此在ejb-jar.xml
应该在META-INF of the EJB jar
。
答案 1 :(得分:3)
您可以使用@TransactionTimeOut注释在Bean方法上指定。
@TransactionTimeout(value = 10, unit = TimeUnit.SECONDS)
有关如何设置的详细说明,请参阅here
麦迪