Jboss 7 JNDI查找类强制转换异常

时间:2014-10-15 13:20:38

标签: jboss7.x jndi jmx classcastexception

我熟悉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 beans ,监控服务和拦截器存在于同一个ejb模块中。

我终于为此做了解决方法,而不是通过jndi我使用了jmx客户端(https://github.com/michaljedryszka/jboss-sample-monitoring/commit/dcc4f05a4d6d50e592f0517bfe0454033f8e3659

但我仍然不知道如何使用jndi查找修复该CCE。

你能提出什么建议?

此致

1 个答案:

答案 0 :(得分:0)

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