2013-09-19 1 views
4

Я использую JayBird 2.2.3 с зимовать 3.5 и когда я использую мастер зимовать картографические файлы и базы данных Pojos следующее сообщение об ошибке появляется «java.lang.NullPointerException»Как настроить JayBird с Hibernate

I использовать то же отображение с MySQL и работает правильно, поэтому я считаю, что это что-то в 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) 

может s omeone помочь мне?

+0

Что такое stacktrace 'NullPointerException'? –

+0

Я не мог найти эту NullPointerException stracktrace. это изображение ошибки http://imageshack.us/photo/my-images/20/in28.png/ может помочь мне найти stracktrace это NullPointerException? спасибо –

+0

Я предлагаю посмотреть в журнале Netbeans (например, 'C: \ Users \ <ваше имя пользователя> \ AppData \ Roaming \ Netbeans \ \ var \ log' в Windows) –

ответ

3

После копания в коде Netbeans и добавления дополнительных протоколирование в JayBird, проблема заключается в том, что Netbeans загружает драйвер с пользовательским загрузчиком классов, которая не возвращает ресурсы в META-INF/services (специально для Соек 2.2.x: META-INF/services/org.firebirdsql.gds.impl.GDSFactoryPlugin).

Это разрывает драйвер, поскольку эти определения служб используются для загрузки доступных определений GDSFactoryPlugin (например, один для реализации по умолчанию для типа 4, реализации типа 4 Open Office, встроенного клиента Type 2 и родного клиента Type 2).

Я добавлю какой-то резервный механизм или переведу это определение плагина в отдельное место, а также исследую, почему Netbeans это делает, потому что это не имеет большого смысла для меня.

Обход

В качестве обходного пути я выпустил снимок сборки JayBird 2.2.4, вы можете загрузить его с http://sourceforge.net/projects/firebird/files/firebird-jca-jdbc-driver/2.2.4-SNAPSHOT/ (убедитесь, что сегодня (21 сентября) в качестве даты сборки, это возможно, что некоторые из зеркал sourceforge все еще распределяют предыдущий снимок).

Полный список изменений в 2.2.4 можно найти в трекер Jaybird: Version 2.2.4.

+0

, тогда с текущими версиями jaybird и netbeans не может спящий реверс? –

+0

@TiagoRoquedeCarvalho Нет, к сожалению, это не так. Я выпущу версию 2.2.4-SNAPSHOT с обходным решением в эти выходные. –

+1

@TiagoRoquedeCarvalho Я загрузил снимок, см. Редактирование моего ответа для деталей. –