8

我目前正在尝试将我的 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 事务超时?

4

2 回答 2

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.

于 2012-11-17T14:56:32.180 回答
3

您可以使用 @TransactionTimeOut 注释在 Bean 方法上指定。

@TransactionTimeout(value = 10, unit = TimeUnit.SECONDS)

有关如何设置的详细说明,请参阅此处

麦迪

于 2012-10-23T10:48:02.450 回答