【发布时间】:2014-10-15 13:20:38
【问题描述】:
我正在熟悉 Jboss 7。
我正在编写一些应用程序来尝试技术。
所以我想有一些简单的监控服务,可以让我对业务方法进行一些反击。
我想通过jmx 和jndi 访问柜台。
“柜台服务”是 jmx bean 的一部分。在jmx 注册期间,它也在jndi context 中注册。
然后它被用于一些拦截器。
这里出现了问题,当我想从 jndi 获取引用时,我得到了类转换异常。
java.lang.ClassCastException: com.cybercom.pl.jbmon.SystemMonitorService cannot be cast to com.cybercom.pl.jbmon.SystemMonitorService
我认为这样做的原因是类加载器是不同的。
在服务启动期间是:
ModuleClassLoader for Module "org.jboss.as.standalone:main" from local module loader @a4d593 ....
在执行期间是:
ModuleClassLoader for Module "deployment.jboss-mon-app.ear.jboss-mon-web.war:main" from Service Module Loader
JMX bean,监控服务和拦截器存在于同一个ejb模块中。
我终于解决了这个问题,而不是通过 jndi 我使用了 jmx 客户端 (https://github.com/michaljedryszka/jboss-sample-monitoring/commit/dcc4f05a4d6d50e592f0517bfe0454033f8e3659)
但我仍然不知道如何使用 jndi 查找来修复该 CCE。
你有什么建议?
问候
【问题讨论】:
标签: jboss7.x jndi jmx classcastexception