See
http://stackoverflow.com/q/10673119/466862
The loading of FBDriver can fail in a restricted environment as the LoggerFactory tries to retrieve the system property FBLog4j; if this fails (as described in above stackoverflow post in an unsigned applet, but other restricted scenarios are possible as well) with an AccessControlException, then the driver load will fail with a java.lang.NoClassDefFoundError: Could not initialize class org.firebirdsql.jdbc.FBDriver
and:
Caused by: java.security.AccessControlException: access denied (java.util.PropertyPermission FBLog4j read)
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPropertyAccess(Unknown Source)
at java.lang.System.getProperty(Unknown Source)
at org.firebirdsql.logging.LoggerFactory.getLogger(LoggerFactory.java:36)
at org.firebirdsql.logging.LoggerFactory.getLogger(LoggerFactory.java:72)
at org.firebirdsql.jdbc.FBDriver.<clinit>(FBDriver.java:63)
... 12 more