This is for JBoss EJB 3 integration code, so we can use JBoss interfaces, not just EJB standard interfaces.
Inside an interceptor instance, I need access to the ejbName of the EJB being intercepted (so I can use this as a unique key to look up other info on the EJB). Currently I am doing this ugly hack:
try {
guidField = StatefulSessionContextImpl.class.getDeclaredField("containerGuid");
guidField.setAccessible(true);
} catch (Exception e) {
throw new RuntimeException(e);
}
...
try {
String guid = (String) guidField.get(sessionContext);
Container container = Ejb3Registry.getContainer(guid);
return container.getEjbName();
} catch (Exception e) {
throw new RuntimeException(e);
}