Hibernate和DB2连接
我真的遇到了一个大问题。我正在连接Db2 thriugh Hibernate 下面是我的用于db2连接的hibernate.cfg.xml文件代码Hibernate和DB2连接,hibernate,connection,db2,Hibernate,Connection,Db2,我真的遇到了一个大问题。我正在连接Db2 thriugh Hibernate 下面是我的用于db2连接的hibernate.cfg.xml文件代码 <property name="dialect">org.hibernate.dialect.DB2Dialect</property> <property name="transaction.factory_class">org.hibernate.transaction.JDBCTransact
<property name="dialect">org.hibernate.dialect.DB2Dialect</property>
<property name="transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>
<property name="hibernate.connection.datasource">jdbc/hla</property>
<property name="hibernate.show_sql">false</property>
<property name="connection.driver_class">com.ibm.db2.jcc.DB2Driver</property>
<property name="connection.url">jdbc:db2://192.262.3.12:34333/dbname;create=true</property>
<property name="connection.username">Db2admin</property>
<property name="connection.password">******</property>
它抛出异常。我附上部分例外情况。希望这会有帮助
16:15:33,749 ERROR [DispatchAction] Dispatch[/list] to method 'listComponents' returned an exception
java.lang.reflect.InvocationTargetException
at sun.reflect.GeneratedMethodAccessor66.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:615)
at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:269)
at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:170)
at org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
at org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
at java.lang.Thread.run(Thread.java:797)
Caused by:
java.lang.NoClassDefFoundError: com.sit.util.HibernateUtil (initialization failure)
at java.lang.J9VMInternals.initialize(J9VMInternals.java:123)
at com.core.dao.Dao.getAlls(Unknown Source)
at com.sit.visualisation.actions.VisualListAction(VisualListAction.java:99)
... 34 more
Caused by:
java.lang.Throwable: java.lang.ExceptionInInitializerError
非常感谢您的帮助。我认为stacktrace不完整。。。问题在于com.sit.util.HibernateUtil类的日化正在引发一个异常,这可能在下面描述:
Caused by:
java.lang.Throwable: java.lang.ExceptionInInitializerError
为什么要定义“数据源”和连接属性(JDBCURL、用户名、密码)?您应该使用容器提供的数据源(首选),或者让Hibernate直接连接到数据库(在独立环境中很有用)
在您的情况下,例外情况是Hibernate无法使用名称“jdbc/hla”从JNDI获取连接。因此,请检查应用程序服务器的配置。如果删除数据源配置,Hibernate将尝试使用您提供的其他信息(JDBCURL、用户名、密码)直接连接到数据库
jdbc/hla
jdbc:db2://192.262.3.12:34333/dbname;create=true
Db2admin
******
“java.lang.NoClassDefFoundError:com.pirean.sit.util.HibernateUtil”类似乎不是它应该在的位置。感谢您的回复。我也在想你在这里提到的错误。那么,我应该在hibernate.cfg.xml文件中给出什么属性呢?这取决于。你想做什么?要使用容器提供的连接,还是让Hibernate管理它?我想这样做。不管我用哪种方式。请指导我做这件事的任何方法。
Caused by:
java.lang.Throwable: java.lang.ExceptionInInitializerError
<!-- Hibernate will try to get "jdbc/hla" from the application server -->
<property name="hibernate.connection.datasource">jdbc/hla</property>
<!-- Hibernate will try to connect directly to the database -->
<property name="connection.url">jdbc:db2://192.262.3.12:34333/dbname;create=true</property>
<property name="connection.username">Db2admin</property>
<property name="connection.password">******</property>