java - 在 Glassfish 上监听 JNDI 的变化——如何查找 EventContext?

标签 java event-handling glassfish ejb jndi

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

我的理解是,我应该实现 javax.naming.event.ObjectChangeListener,从 JNDI 中查找 EventContextEventDirContext,然后调用它的 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 事件,或者我应该考虑完全不同的方法吗?感谢任何建议。

最佳答案

GlassFish 3.1.2 不支持 JNDI 事件。

关于java - 在 Glassfish 上监听 JNDI 的变化——如何查找 EventContext?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7268160/

相关文章:

python - 从 QGraphicsView 转到 QMainWindow 现在 keyPressEvent 看不到箭头键

c# - 两个处理实现之间的区别?

java - 书 `Spring persistence with Hibernate` 中的画廊源代码不起作用

java - 用于在 glassfish 中部署的 ejb 的 persistence.xml

jakarta-ee - 有选择地从 CDI 扫描中排除包

java - 使用 @NonNull 检查 input==null 与让 NPE 被抛出

java - 如何将组件沿 y 轴动态添加到 JPanel,同时具有灵活的宽度?

java - 在 Docker 容器中使用 shell 脚本执行 Java Jar

events - DDD、领域服务和事件

java - JPanel 网格问题