当前位置:  开发笔记 > 编程语言 > 正文

MDB注释的可​​配置值

如何解决《MDB注释的可​​配置值》经验,为你挑选了1个好方法。

我正在尝试使用此方法在EJB3应用程序中接收邮件.简而言之,这意味着使用以下注释创建MDB:

@MessageDriven(activationConfig = { @ActivationConfigProperty(propertyName = "mailServer", propertyValue = "imap.company.com"),
    @ActivationConfigProperty(propertyName = "mailFolder", propertyValue = "INBOX"),
    @ActivationConfigProperty(propertyName = "storeProtocol", propertyValue = "imap"),
    @ActivationConfigProperty(propertyName = "debug", propertyValue = "false"),
    @ActivationConfigProperty(propertyName = "userName", propertyValue = "username"),
    @ActivationConfigProperty(propertyName = "password", propertyValue = "pass") })
@ResourceAdapter("mail-ra.rar")
@Name("mailMessageBean")
public class MailMessageBean implements MailListener {
    public void onMessage(final Message msg) {
       ...snip...
    }
}

我有这个工作,但情况不太理想:主机名,用户名和密码是硬编码的.如果没有使用ant和build.properties在编译之前替换这些值,我不知道如何外化它们.

使用MBean是理想的,但我不知道如何从MBean获取值到MDB配置.

我该怎么做?



1> Brett Hannah..:

您可以将注释外部化到您在jar文件的META-INF中部署的ejb-jar.xml,如下所示:




    
        
            YourMDB
            MailMessageBean        
            
                
                   username
                   ${mdb.user.name}
                
...
...
            
        
    

然后,您可以使用-Dmdb.user.name = theUserName将mdb.user.name值设置为系统属性作为应用程序服务器命令行的一部分,它将被mdb神奇地拾取.

希望有所帮助.

推荐阅读
小妖694_807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有