JBoss JMX или что-то вроде этого...
От: Sherlock  
Дата: 30.01.07 11:54
Оценка:
Есть WAR приложение. Требуется:
1. Из этого приложения обращаться к некоторым внешним классам.
2. Эти классы должны деплоиться/убираться из JBoss автоматически.

Создаю sar приложение с MBean'ом, который будет сообщать список известных ему классов ну
и при необходимости создавать экземпляры этих классов. Этот MBean реализует некоторый интерфейс, скажем, Factory.
А классы реализуют интерфейс Plan.

Вопрос: как из основного WAR приложения, получив доступ к MBean'у, преобразовать его к этому интерфейсу?

пишу Factory f = (Factory)new InitialContext().lookup("something");
Если Factory не определана в WAR — ошибка NoClassDefFound. Если определена — ClassCastException.

Причем он именно таки получает доступ к этому Bean'у. Если пишу
Object f = (Object)new InitialContext().lookup("something");
то все нормально и в debug вижу нужный интерфейс.
Re: JBoss JMX или что-то вроде этого...
От: yacc  
Дата: 30.01.07 17:12
Оценка:
S>Вопрос: как из основного WAR приложения, получив доступ к MBean'у, преобразовать его к этому интерфейсу?
а в jmx-console видны у твоего mbean'а нужные операции?
а если примерно так сделать — будет работать? (пишу по-памяти, может где ошибка вкралась)
MBeanServer    server    = (MBeanServer)MBeanServerFactory.findMBeanServer(null).get(0);
ObjectName     name      = new ObjectName("jboss","service","DefaultPartition");
ObjectInstance partition = (ObjectInstance)server.queryMBeans(name,null).iterator().next();
String         nodeName  = (String)server.invoke (partition.getObjectName(),"getNodeName",new Object[]{},new String[]{});
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.