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中。 –