我正在尝试在我们的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配置中。
我应该怎么做?
<spec-descriptor-property-replacement>
。 - eis