0
我有以下的MDB配置MDB设置ActivationConfig动态
@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的。我不想把这一切归结为一个供应商。我需要它以这种方式打开。
我环顾四周,我无法找到任何暗示我可以做这样的事情。有没有可能像设置方法那样设置配置?
谢谢你的回复。按照供应商的具体情况,我的意思是在ejb-jar.xml中。我认为JBoss需要一套标签才能正常工作。我不能在代码中设置MDB属性吗?我想象的问题是注解用于在容器内部设置MDB,并且能够在代码中修改MDB,这需要重新部署MDB。至少我想要做的就是从用户设置的属性文件中读取目标,而不是硬编码值。 – Softey
我对JBoss的回答不够熟悉,但是如果有一种方法可以轻松地使用代码来做到这一点,我会感到惊讶。通常,您可以在应用程序服务器中配置它,而不是在应用程序中配置。例如,对于WebSphere Application Server,您可以在激活规范中配置addressList而不是在MDB中。 –