【问题标题】:Jboss 7 JNDI lookup class cast exceptionJboss 7 JNDI 查找类转换异常
【发布时间】:2014-10-15 13:20:38
【问题描述】:

我正在熟悉 Jboss 7。
我正在编写一些应用程序来尝试技术。

所以我想有一些简单的监控服务,可以让我对业务方法进行一些反击。
我想通过jmxjndi 访问柜台。
“柜台服务”是 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


    【解决方案1】:

    您可以尝试create and install JBoss module 使用属于 JMX mbeans 的类。这将导致所有访问都加载到同一个类加载器中。
    必须在应用程序中为新模块添加依赖后,例如可以使用jboss-deployment-structure.xml文件。

    【讨论】:

    • @MichalJedryszka 不客气。如果您认为答案正确且有帮助,请不要忘记接受。
    猜你喜欢
    • 1970-01-01
    • 2013-11-24
    • 1970-01-01
    • 2015-10-09
    • 1970-01-01
    • 2017-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多