I only need read only operations like getting list of role, user, etc...
I notice that in order for a "MBeanProxy" to works, the call must be done inside a session (ok) but into a transaction too (?)
here a working code :
Session session = null; Transaction t = null; try { SessionFactory identitySessionFactory = (SessionFactory) new InitialContext().lookup("java:/portal/IdentitySessionFactory"); session = identitySessionFactory.openSession(); t = session.beginTransaction(); MBeanServer mbeanServer = MBeanServerLocator.locateJBoss(); RoleModule roleModule = (RoleModule) MBeanProxy.get(RoleModule.class, new ObjectName("portal:service=Module,type=Role"), mbeanServer); Set s = roleModule.findRoles(); Iterator it = s.iterator(); while (it.hasNext()) { // just dump role for the test System.out.println("roles : " + it.next()); } } catch (Exception ex) { ex.printStackTrace(); } finally { if (t != null) {t.rollback(); } if (session != null) {session.close();} }
<transaction> <trans-attribute>Required</trans-attribute> </transaction>