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>