2008-10-01 13 views
8

Bir kaynak paketini bir veritabanından yüklemek için fmt: setBundle kullanıyoruz (bunu yapmak için ResourceBundle sınıfını genişlettik). Veritabanındaki bir değeri değiştirdiğimizde, web uygulamasında yeni değeri görüntülemek için web sunucusunu yeniden yüklememiz gerekir.Java'da, bir web uygulamasında dinamik olarak kaynak paketleri nasıl yeniden yüklenir?

Web sunucusunu yeniden başlatmadan yeni değeri kullanmanın basit bir yolu var mı?

(Biz hep veritabanından değerini aramak istemiyorum ama biz özel bir 'yönetici' URL arayarak örneğin önbelleği geçersiz istiyorum)

DÜZENLEME: Biz JDK 1.4 kullanıyorsanız Bu yüzden bu versiyonda bir çözüm tercih ederim. :) Eğer JDK 1.6 kullanıyorsanız

+0

Eğer ResourceBundle sınıfının kendisine fazla bağlı değilseniz, Spring'in MessageSource soyutlaması, iletileri önbelleğe alma ve yeniden yükleme de dahil olmak üzere daha esnek bir yaklaşım sağlar. Özel ResourceBundle'ınızı sarabilir. Gerektiğinde Spring API’nın küçük bir kısmını kendi başınıza kullanabilirsiniz. – skaffman

+0

Yanıt, muhtemelen kullandığınız Servlet içeriklerini (uygulama sunucusu), örn. Tomcat ya da JBoss. Hangisi? –

+0

Geliştirmek için Tomcat'i kullanıyoruz ancak üretim için Websphere Application Server (5.X) kullanıyoruz. – paulgreg

cevap

7

Eğer paket önbellek veritabanından yeni değerlerle yüklü gerekiyorsa kontrol etmek geri arama yöntemleri getTimeToLive() ve ResourceBundle.Control içinde needsReload() kullanabilirsiniz.

İlgili konular