Java 在standalone.xml(JBOSS)中配置特定的SFSB有状态超时
对于我的JEE 3.1应用程序,我有一个SFSB,我为它设置了一个特定的超时。我需要能够轻松访问此值,以使其易于配置 首先,我在我的SFSB课堂上做了注释:Java 在standalone.xml(JBOSS)中配置特定的SFSB有状态超时,java,jakarta-ee,jboss,Java,Jakarta Ee,Jboss,对于我的JEE 3.1应用程序,我有一个SFSB,我为它设置了一个特定的超时。我需要能够轻松访问此值,以使其易于配置 首先,我在我的SFSB课堂上做了注释: @StatefulTimeout(value = 2, unit = TimeUnit.HOURS) 这正如预期的那样有效。但我需要这个值是(容易)可配置的。因此,我删除了注释,并将以下xml放在我的ejb-jar.xml中。同样,这也是预期的效果 <session> <ejb-name>MyStatefu
@StatefulTimeout(value = 2, unit = TimeUnit.HOURS)
这正如预期的那样有效。但我需要这个值是(容易)可配置的。因此,我删除了注释,并将以下xml放在我的ejb-jar.xml中。同样,这也是预期的效果
<session>
<ejb-name>MyStatefulSessionBeanName</ejb-name>
<ejb-class>foo.bar.MyStatefulSessionBean</ejb-class>
<session-type>Stateful</session-type>
<stateful-timeout>
<timeout>2</timeout>
<unit>Hours</unit>
</stateful-timeout>
</session>
MyStatefleSessionBeanname
foo.bar.mystateflesessionbean
有状态
2.
小时
但是ejb-jar.xml打包在.jar中,它位于my.ear应用程序部署中。因此,我的问题是,是否可以将此设置放在jboss的standalone.xml文件中?如果不重新启动应用程序,就很难做到这一点 如果没有问题,那么可以在standalone.xml中定义系统属性。为此,我建议使用CLI或管理控制台 然后可以在ejb-jar.xml中使用属性值:
<stateful-timeout>
<timeout>${my.session.timeout.value}</timeout>
<unit>${my.session.timeout.units}</unit>
</stateful-timeout>
${my.session.timeout.value}
${my.session.timeout.units}
然后,可以通过web控制台或CLI更新属性值,并重新启动应用程序。请注意,要使此操作正常,需要在standalone.xml中将“spec descriptor property replacement”设置为“true”。您还将失去JavaEE遵从性。感谢Steve和Barry,这解决了我的问题。重新启动服务器对我来说不是问题。