监听 Glassfish 上 JNDI 的变化 ߝ如何查找EventContext?

发布于 2024-12-02 05:10:15 字数 931 浏览 2 评论 0原文

我的 EJB 应用程序从 JNDI 查找一些配置值。我希望能够更改这些值并让应用程序立即注意到,而无需重新启动服务器或执行任何其他操作来触发它重新配置自身。

我的理解是,我应该实现 javax.naming.event.ObjectChangeListener,从 JNDI 查找 EventContextEventDirContext,然后调用其 < code>addNamingListener 方法来注册我的 ObjectChangeListener

为了查找 EventContext 或 EventDirContext,我尝试了这个,网上无数的例子建议我这样做:

InitialContext ctx = new InitialContext();
EventContext eventContext = (EventContext) ctx.lookup("");

但是,这给了我一个 ClassCastException

java.lang.ClassCastException: com.sun.enterprise.naming.impl.SerialContext cannot be cast to javax.naming.event.EventContext

当我尝试转换为 <代码>EventDirContext。

我尝试查找我使用的确切 JNDI 名称,以及“java:”、“java:comp”和“java:comp/env”,而不是“”。这些都返回无法转换为我需要的任何事件上下文的对象。

我使用的 JNDI 实现只是普通的 Glassfish 3.1.1。

是否可以侦听 JNDI 事件,或者我应该考虑完全不同的方法?感谢任何建议。

My EJB application looks up some configuration values from JNDI. I would like to be able to change these values and have the application take notice immediately, without having to restart the server or do anything else to trigger it to reconfigure itself.

My understanding is that I should implement javax.naming.event.ObjectChangeListener, look up an EventContext or EventDirContext from JNDI, and then call its addNamingListener method to register my ObjectChangeListener.

To look up the EventContext or EventDirContext, I've tried this, which numerable examples online advised me to:

InitialContext ctx = new InitialContext();
EventContext eventContext = (EventContext) ctx.lookup("");

However, this gives me a ClassCastException:

java.lang.ClassCastException: com.sun.enterprise.naming.impl.SerialContext cannot be cast to javax.naming.event.EventContext

I also get the equivalent error when I try to cast to EventDirContext.

Instead of "", I have tried to look up the exact JNDI names I use, as well as "java:", "java:comp", and "java:comp/env". These all return Objects which cannot be cast to any of the event contexts I need.

The JNDI implementation I use is just stock Glassfish 3.1.1.

Is it possible to listen for JNDI events, or should I consider a different approach altogether? Appreciate any suggestions.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

年华零落成诗 2024-12-09 05:10:15

GlassFish 3.1.2 不支持 JNDI 事件。

JNDI event is not supported in GlassFish 3.1.2.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文