如何用休眠配置Jaybird [英] How to configure Jaybird with hibernate

查看:156
本文介绍了如何用休眠配置Jaybird的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用jaybird 2.2.3和hibernate 3.5,当我使用向导来映射文件和pojos数据库时,出现如下错误:
java.lang.NullPointerException



我使用与mysql相同的映射,它工作正常,所以我相信这是在jaybird中的东西

 我的hibernate.cfg.xml 

<?xml version =1.0encoding =UTF-8?>
<!DOCTYPE hibernate-configuration PUBLIC - // Hibernate / Hibernate Configuration DTD 3.0 // ENhttp://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd\">
< hibernate-configuration>
< session-factory>
< property name =hibernate.dialect> org.hibernate.dialect.FirebirdDialect< / property>
< property name =hibernate.connection.driver_class> org.firebirdsql.jdbc.FBDriver< / property>
< property name =hibernate.connection.url> jdbc:firebirdsql:// XXXXXX:XXXX / X:\XXXX\XXXX\XXX\XXX\XX\XXX.FDB<< ; /性>
< property name =hibernate.connection.username> sysdba< / property>
< property name =hibernate.connection.password> XXXXX< / property>
< / session-factory>
< / hibernate-configuration>

编辑:

  INFO [org.hibernate.cfg.Configuration]:从文件配置:hibernate.cfg.xml 
INFO [org.hibernate.cfg.Configuration]:配置SessionFactory:null
INFO [ org.hibernate.cfg.reveng.OverrideRepository]:覆盖文件:C:\ Documents and Settings \micro-40\workspace\testefirebird\src\java\hibernate.reveng.xml
INFO [org.netbeans.modules.hibernate.util.HibernateUtil]:找到预先存在的数据库连接。
INFO [org.netbeans.modules.hibernate.util.HibernateUtil]:数据库连接是预先建立的。返回连接。
INFO [org.hibernate.connection.ConnectionProviderFactory]:初始化连接提供商:org.netbeans.modules.hibernate.util.CustomJDBCConnectionProvider
INFO [org.netbeans.modules.hibernate.util.CustomJDBCConnectionProvider]:加载JDBC驱动
INFO [org.netbeans.modules.hibernate.util.CustomJDBCConnectionProvider]:有连接..返回
INFO [org.netbeans.modules.hibernate.wizards.HibernateCodeGenWizardDescriptor]:访问休眠失败。
java.lang.NullPointerException
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:86)
at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2005 )美元,org.hibernate.cfg.JDBCMetaDataConfiguration.readFromJDBC(JDBCMetaDataConfiguration.java:40 b $ b)
在org.netbeans.modules.hibernate.wizards.HibernateCodeGenWizardDescriptor.checkConfig(Hibernat eCodeGenWizardDescriptor.java:282)
[抓]在org.netbeans.modules.hibernate.wizards.HibernateCodeGenWizardDescriptor.isValid(HibernateCod eGenWizardDescriptor.java:177)
。在org.openide.WizardDescriptor.updateStateOpen(WizardDescriptor.java:872)
在org.openide.WizardDescriptor.updateState(WizardDescriptor.java:820)
在org.openide.loaders.TemplateWizard.updateState(TemplateWizard.java:754)
在org.netbeans.modules.project.ui .NewFileWizard.updateState(NewFileWizard.java:124)
at org.openide.WizardDescriptor._updateState(Wi zardDescriptor.java:798)
在org.openide.WizardDescriptor.access $ 200(WizardDescriptor.java:90)
在org.openide.WizardDescriptor $ Listener.stateChanged(WizardDescriptor.java:2094)
。在org.openide.util.WeakListenerImpl $ Change.stateChanged(WeakListenerImpl.java:329)
处org.openide org.openide.loaders.TemplateWizardIterImpl.run(TemplateWizardIterImpl.java:275)
。 util.Mutex.doEvent(Mutex.java:1343)
at org.openide.util.Mutex.writeAccess(Mutex.java:457)
at org.openide.loaders.TemplateWizardIterImpl.fireStateChanged(TemplateWizardIterImpl。 Java的:261)
处org.openide.loaders.TemplateWizardIteratorWrapper.setIterator(TemplateWizardIteratorWrapper org.openide.loaders.TemplateWizardIterImpl.setIterator(TemplateWizardIterImpl.java:120)

at org.openide.loaders.TemplateWizard.setTemplateImpl(TemplateWizard.java:209)
at org.openide.loaders.TemplateWizard $ 1.run(TemplateWizard.java:231)
在org.openide.loaders.TemplateWizard $ 1.run(TemplateWizard.java:228)
在org.openide.util.Mutex.doEventAccess(Mutex.java:1363)
在org.openide.util .Mutex.readAccess(Mutex.java:273)
at org.openide.loaders.TemplateWizard.setTemplate(TemplateWizard.java:228)
at org.netbeans.modules.project.ui.TemplateChooserPanel.storeSettings (TemplateChooserPanel.java:168)
。在org.netbeans.modules.project.ui.TemplateChooserPanel.storeSettings(TemplateChooserPanel.java:71)
。在org.openide.WizardDescriptor.storeSettingsAndNotify(WizardDescriptor.java:1379 )
at org.openide.WizardDescriptor.access $ 1700(WizardDescriptor.java:90)
at org.openide.WizardDescriptor $ Listener $ 1.run(WizardDescriptor.java:2117)
at org。 openide.WizardDescriptor.lazyValidat e(WizardDescriptor.java:1502)
在org.openide.WizardDescriptor.access $ 1900(WizardDescriptor.java:90)
在org.openide.WizardDescriptor $ Listener.actionPerformed(WizardDescriptor.java:2141)
。在sun.reflect.GeneratedMethodAccessor182.invoke(来源不明)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
在java.lang.reflect.Method.invoke(方法.java:601)
at org.openide.util.WeakListenerImpl $ ProxyListener.invoke(WeakListenerImpl.java:457)
at com.sun.proxy。$ Proxy57.actionPerformed(Unknown Source)
。在javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
在javax.swing.AbstractButton中的$ Handler.actionPerformed(AbstractButton.java:2341)
在javax.swing.DefaultButtonModel.fireActionPerformed( DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListene $ javax.swing.JComponent.processMouseEvent($ JComponent.java:3321)
$ java.util.Component.processEvent(Component.java:6270)$ b $ java.awt.Container.processEvent(Container.java:2229)
java.awt.Component.dispatchEventImpl(Component .java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java。 awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent (Component.java:4687)
在java.awt.EventQueu e.dispatchEventImpl(EventQueue.java:729)
在java.awt.EventQueue.access $ 200(EventQueue.java:103)
在java.awt.EventQueue $ 3.run(EventQueue.java:688)
at java.awt.EventQueue $ 3.run(EventQueue.java:686)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain $ 1.doIntersectionPrivilege( $ java.security.ProtectionDomain
$ 1.doIntersectionPrivilege(ProtectionDomain.java:87)$ b $ at java.awt.EventQueue $ 4.run(EventQueue.java:702)
java.awt.EventQueue $ 4.run(EventQueue.java:700)$ java.util.AccessController.doPrivileged(Native方法)
$ java.security.ProtectionDomain中的b $ b $ 1.doIntersectionPrivilege(ProtectionDomain.java:
at java.awt.EventQueue.dispatchEvent(EventQueue.java:699)
at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:159)
at java.awt .EventDispatchThread.pumpOneEventForFilters(EV entDispatchThread.java:242)在java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161
)在java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:154

是java .awt.WaitDispatchSupport $ 2.run(WaitDispatchSupport.java:182)
在java.awt.WaitDispatchSupport $ 4.run(WaitDispatchSupport.java:221)
在java.security.AccessController.doPrivileged(本机方法)
在java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:219)
在java.awt.Dialog.show(Dialog.java:1082)
在org.netbeans.core.windows .services.NbPresenter.superShow(NbPresenter.java:1076)
at org.netbeans.core.windows.services.NbPresenter.doShow(NbPresenter.java:1126)
at org.netbeans.core.windows .services.NbPresenter.run(NbPresenter.java:1098)
at org.netbeans.core.windows.services.NbPresenter.run(NbPresenter.java:128)
at org.openide.util.Mutex .doEventAccess(Mutex.java:1363)
在org.ope nide.util.Mutex.readAccess(Mutex.java:273)
at org.netbeans.core.windows.services.NbPresenter.show(NbPresenter.java:1083)
在java.awt.Component。显示(Component.java:1651)
位于java.awt.Component.setVisible(Component.java:1603)
位于java.awt.Window.setVisible(Window.java:1014)
在org.netbeans.core.windows.services.DialogDisplayerImpl上
$ 1AWTQuery.showDialog(DialogDisplayerI mpl.java:260)
at org。 netbeans.core.windows.services.DialogDisplayerImpl $ 1AWTQuery.run(DialogDisplayerImpl.jav a:186)
位于java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
位于java.awt .EventQueue.dispatchEventImpl(EventQueue.java:727)$ b $在java.awt.EventQueue.access $ 200(EventQueue.java:103)
在java.awt.EventQueue $ 3.run(EventQueue.java:688 )在java.awt.EventQueue上
$ 3.run(EventQueue.java:686)$ java.util.AccessController.doPrivileged上的
(Native M ethod)
在java.security.ProtectionDomain $ 1.doIntersectionPrivilege(ProtectionDomain.java:76)
在java.awt.EventQueue.dispatchEvent(EventQueue.java:697)
在org.netbeans。 core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:159)
在java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
在java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)在java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)

在java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
在java.awt.EventDispatchThread.pumpEvents (EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)

有人可以帮我吗?

解决方案

在挖掘了Netbeans的代码并向Jaybird添加了额外的日志之后,问题是Netbeans加载了使用自定义类加载器的驱动程序,它不返回 META-INF / services 中的资源(专门用于Jaybird 2.2.x: META-INF / services / org.firebirdsql.gds.impl.GDSFactoryPlugin )。

由于这些服务定义用于加载可用的 GDSFactoryPlugin 定义(例如Type 4默认实现,4型Open Office实现,2型嵌入式客户端和2型本地客户端)。



我会添加某种回退机制或将此插件定义移至单独的位置,并调查Netbeans为何这样做,因为它没有太大意义给我。

解决方案



使用 Jaybird 2.2.4或更高版本。
$ b

解决方法



注意:不要使用此解决方法,它会被Jaybird 2.2.4的版本所取代

作为解决方案,我发布了Jaybird 2.2.4的快照构建,您可以从 http://sourceforge.net/projects/firebird/files/firebird-jca-jdbc-driver/2.2.4-SNAPSHOT/ (确保它有今天( 9月21日)作为构建日期,有可能一些sourceforge镜像仍然会分发以前的snapsho

2.2.4的完整列表可以在Jaybird追踪器中找到: 2.2.4版


I'm using jaybird 2.2.3 with hibernate 3.5 and when I use the wizard to hibernate mapping files and pojos database the following error appears "java.lang.NullPointerException"

I use the same mapping with mysql and it works correctly, so I believe it is something in jaybird

My hibernate.cfg.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD       3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
  <session-factory>
<property name="hibernate.dialect">org.hibernate.dialect.FirebirdDialect</property>
<property name="hibernate.connection.driver_class">org.firebirdsql.jdbc.FBDriver</property>
<property name="hibernate.connection.url">jdbc:firebirdsql://XXXXXX:XXXX/X:\XXXX\XXXX\XXX\XXX\XX\XXX.FDB</property>
<property name="hibernate.connection.username">sysdba</property>
<property name="hibernate.connection.password">XXXXX</property>
  </session-factory>
</hibernate-configuration>

Edit:

INFO [org.hibernate.cfg.Configuration]: configuring from file: hibernate.cfg.xml
INFO [org.hibernate.cfg.Configuration]: Configured SessionFactory: null
INFO [org.hibernate.cfg.reveng.OverrideRepository]: Override file: C:\Documents and  Settings\micro-40\workspace\testefirebird\src\java\hibernate.reveng.xml
INFO [org.netbeans.modules.hibernate.util.HibernateUtil]: Found pre-existing database  connection.
INFO [org.netbeans.modules.hibernate.util.HibernateUtil]: Database Connection is pre-established. Returning the conneciton.
INFO [org.hibernate.connection.ConnectionProviderFactory]: Initializing connection provider: org.netbeans.modules.hibernate.util.CustomJDBCConnectionProvider
INFO [org.netbeans.modules.hibernate.util.CustomJDBCConnectionProvider]: Loaded JDBC driver 
INFO [org.netbeans.modules.hibernate.util.CustomJDBCConnectionProvider]: Got connection.. returning
INFO [org.netbeans.modules.hibernate.wizards.HibernateCodeGenWizardDescriptor]: access  to hibernate fails.
java.lang.NullPointerException
    at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:86)
    at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2005)
    at     org.hibernate.cfg.JDBCMetaDataConfiguration.readFromJDBC(JDBCMetaDataConfiguration.java:40)
    at  org.netbeans.modules.hibernate.wizards.HibernateCodeGenWizardDescriptor.checkConfig(Hibernat    eCodeGenWizardDescriptor.java:282)
[catch] at    org.netbeans.modules.hibernate.wizards.HibernateCodeGenWizardDescriptor.isValid(HibernateCod    eGenWizardDescriptor.java:177)
    at org.openide.WizardDescriptor.updateStateOpen(WizardDescriptor.java:872)
    at org.openide.WizardDescriptor.updateState(WizardDescriptor.java:820)
    at org.openide.loaders.TemplateWizard.updateState(TemplateWizard.java:754)
    at org.netbeans.modules.project.ui.NewFileWizard.updateState(NewFileWizard.java:124)
    at org.openide.WizardDescriptor._updateState(WizardDescriptor.java:798)
    at org.openide.WizardDescriptor.access$200(WizardDescriptor.java:90)
    at org.openide.WizardDescriptor$Listener.stateChanged(WizardDescriptor.java:2094)
    at org.openide.util.WeakListenerImpl$Change.stateChanged(WeakListenerImpl.java:329)
    at org.openide.loaders.TemplateWizardIterImpl.run(TemplateWizardIterImpl.java:275)
    at org.openide.util.Mutex.doEvent(Mutex.java:1343)
    at org.openide.util.Mutex.writeAccess(Mutex.java:457)
    at     org.openide.loaders.TemplateWizardIterImpl.fireStateChanged(TemplateWizardIterImpl.java:261)
    at     org.openide.loaders.TemplateWizardIterImpl.setIterator(TemplateWizardIterImpl.java:120)
    at     org.openide.loaders.TemplateWizardIteratorWrapper.setIterator(TemplateWizardIteratorWrapper.    java:79)
    at org.openide.loaders.TemplateWizard.setTemplateImpl(TemplateWizard.java:209)
    at org.openide.loaders.TemplateWizard$1.run(TemplateWizard.java:231)
    at org.openide.loaders.TemplateWizard$1.run(TemplateWizard.java:228)
    at org.openide.util.Mutex.doEventAccess(Mutex.java:1363)
    at org.openide.util.Mutex.readAccess(Mutex.java:273)
at org.openide.loaders.TemplateWizard.setTemplate(TemplateWizard.java:228)
    at org.netbeans.modules.project.ui.TemplateChooserPanel.storeSettings(TemplateChooserPanel.java    :168)
    at     org.netbeans.modules.project.ui.TemplateChooserPanel.storeSettings(TemplateChooserPanel.java     :71)
    at org.openide.WizardDescriptor.storeSettingsAndNotify(WizardDescriptor.java:1379)
    at org.openide.WizardDescriptor.access$1700(WizardDescriptor.java:90)
    at org.openide.WizardDescriptor$Listener$1.run(WizardDescriptor.java:2117)
    at org.openide.WizardDescriptor.lazyValidate(WizardDescriptor.java:1502)
    at org.openide.WizardDescriptor.access$1900(WizardDescriptor.java:90)
    at org.openide.WizardDescriptor$Listener.actionPerformed(WizardDescriptor.java:2141)
at sun.reflect.GeneratedMethodAccessor182.invoke(Unknown Source)
    at    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.openide.util.WeakListenerImpl$ProxyListener.invoke(WeakListenerImpl.java:457)
    at com.sun.proxy.$Proxy57.actionPerformed(Unknown Source)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
    at   javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
    at java.awt.Component.processMouseEvent(Component.java:6505)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
    at java.awt.Component.processEvent(Component.java:6270)
    at java.awt.Container.processEvent(Container.java:2229)
    at java.awt.Component.dispatchEventImpl(Component.java:4861)
    at java.awt.Container.dispatchEventImpl(Container.java:2287)
    at java.awt.Component.dispatchEvent(Component.java:4687)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
    at java.awt.Container.dispatchEventImpl(Container.java:2273)
    at java.awt.Window.dispatchEventImpl(Window.java:2719)
    at java.awt.Component.dispatchEvent(Component.java:4687)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:729)
    at java.awt.EventQueue.access$200(EventQueue.java:103)
    at java.awt.EventQueue$3.run(EventQueue.java:688)
    at java.awt.EventQueue$3.run(EventQueue.java:686)
    at java.security.AccessController.doPrivileged(Native Method)
    at     java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at   java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
    at java.awt.EventQueue$4.run(EventQueue.java:702)
    at java.awt.EventQueue$4.run(EventQueue.java:700)
    at java.security.AccessController.doPrivileged(Native Method)
    at    java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:699)
    at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:159)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:154)
    at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:182)
    at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:221)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:219)
    at java.awt.Dialog.show(Dialog.java:1082)
    at org.netbeans.core.windows.services.NbPresenter.superShow(NbPresenter.java:1076)
    at org.netbeans.core.windows.services.NbPresenter.doShow(NbPresenter.java:1126)
    at org.netbeans.core.windows.services.NbPresenter.run(NbPresenter.java:1098)
    at org.netbeans.core.windows.services.NbPresenter.run(NbPresenter.java:128)
    at org.openide.util.Mutex.doEventAccess(Mutex.java:1363)
    at org.openide.util.Mutex.readAccess(Mutex.java:273)
    at org.netbeans.core.windows.services.NbPresenter.show(NbPresenter.java:1083)
    at java.awt.Component.show(Component.java:1651)
    at java.awt.Component.setVisible(Component.java:1603)
    at java.awt.Window.setVisible(Window.java:1014)
    at java.awt.Dialog.setVisible(Dialog.java:1005)
    at   org.netbeans.core.windows.services.DialogDisplayerImpl$1AWTQuery.showDialog(DialogDisplayerI    mpl.java:260)
    at   org.netbeans.core.windows.services.DialogDisplayerImpl$1AWTQuery.run(DialogDisplayerImpl.jav    a:186)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:727)
    at java.awt.EventQueue.access$200(EventQueue.java:103)
    at java.awt.EventQueue$3.run(EventQueue.java:688)
    at java.awt.EventQueue$3.run(EventQueue.java:686)
    at java.security.AccessController.doPrivileged(Native Method)
    at  java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:697)
    at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:159)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)

can someone help me?

解决方案

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.

这篇关于如何用休眠配置Jaybird的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆