Mon architecture:
serveur GlassFish Edition Open Source 3.1.2.2 (5)
Java EE 6
Eclipse IDE
Comment modifier JNDI Ressources personnalisées Propriétés Valeurs à la volée
je créé un temporisateur EJB, qui imprime un message de journal:
@Startup
@Singleton
public class ProgrammaticalTimerEJB {
private final Logger log = Logger.getLogger(getClass().getName());
@Resource(name = "properties/mailconfig")
private Properties mailProperties;
@Resource
private TimerService timerService;
@PostConstruct
public void createProgrammaticalTimer() {
log.log(Level.INFO, "ProgrammaticalTimerEJB initialized");
ScheduleExpression everyTenSeconds = new ScheduleExpression().second("*/10").minute("*").hour("*");
timerService.createCalendarTimer(everyTenSeconds, new TimerConfig("passed message " + new Date(), false));
}
@Timeout
public void handleTimer(final Timer timer) {
log.info(new Date().toGMTString() + " Programmatical: " + mailProperties.getProperty("to"));
}
}
Cette classe injecte ma ressource JNDI personnalisée:
@Resource(name = "properties/mailconfig")
private Properties mailProperties;
Eclipse Console:
INFO: 2 Aug 2013 10:55:40 GMT Programmatical: [email protected]
INFO: 2 Aug 2013 10:55:50 GMT Programmatical: [email protected]
INFO: 2 Aug 2013 10:56:00 GMT Programmatical: [email protected]
paramètres Glassfish
asadmin> get server.resources.custom-resource.properties/mailconfig.property
server.resources.custom-resource.properties/[email protected]
Command get executed successfully.
asadmin>
Maintenant, je veux changer cette valeur de la propriété lors de l'exécution de l'application. L'éditer via Adminconsole ou Asadmin ne fonctionne pas. Est-ce possible, ou existe-t-il une autre/meilleure soulution?
Un grand merci à l'avance