MDB动态设置ActivationConfig

时间:2016-01-21 10:36:20

标签: java jms ejb-3.0

我有以下MDB配置

@MessageDriven(activationConfig = {
@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Topic"),
@ActivationConfigProperty(propertyName = "destinationJndiName", propertyValue = "jms/test/log"),
@ActivationConfigProperty(propertyName= "destination", propertyValue="jms_test_log"),
@ActivationConfigProperty(propertyName="acknowledgeMode", propertyValue="Auto-acknowledge"),    
@ActivationConfigProperty(propertyName="addressList", propertyValue="mq://test.server.co.uk:7676"),
@ActivationConfigProperty(propertyName = "maxSession", propertyValue = "10")
})

@TransactionManagement(TransactionManagementType.BEAN)
public class DownloadListener implements MessageListener { ....

我希望能够动态设置addressList属性。值将来自初始设置属性文件和未来的管理控制台。由于它超出了类别的变化,我无法简单地分配变量。

我已经看到你可以将这些值添加到各种类型的xml文件中,但它似乎与供应商有关,例如JBoss的。我不想把它绑在一个供应商身上。我需要它以这种方式打开。

我环顾四周,我无法找到任何暗示我可以做这样的事情。是否可以像设置方法那样设置配置?

1 个答案:

答案 0 :(得分:2)

不,没有标准的方法来动态设置激活配置属性。我甚至从未听说过特定于供应商的动态设置激活配置属性的方法。我想您可以动态重建EAR并使用特定于供应商的API重新部署它,或者某些应用程序服务器支持动态覆盖该配置。