After digging into the code of Netbeans and adding extra logging to Jaybird, the problem is that Netbeans loads the driver with a custom classloader that doesn't return resources in META-INF/services
(specifically for Jaybird 2.2.x: META-INF/services/org.firebirdsql.gds.impl.GDSFactoryPlugin
).
This breaks the driver as these services definitions are used to load the available GDSFactoryPlugin
definitions (eg one for the Type 4 default implementation, Type 4 Open Office implementation, the Type 2 embedded client and Type 2 native client).
I will add some kind of fallback mechanism or move this plugin definition to a separate location and also investigate why Netbeans does this, because it doesn't make a lot of sense to me.
Solution
Use Jaybird 2.2.4 or higher.
Workaround
NOTE: Do not use this workaround, it was superseded by the release of Jaybird 2.2.4
As a workaround I have released a snapshot build of Jaybird 2.2.4, you can download it from http://sourceforge.net/projects/firebird/files/firebird-jca-jdbc-driver/2.2.4-SNAPSHOT/ (make sure it has today (21st of September) as the build date, it is possible that some of the sourceforge mirrors still distribute the previous snapshot).
A full list of changes in 2.2.4 can be found in the Jaybird tracker: Version 2.2.4.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…