newbie with Hibernate...
pady Jul 4, 2005 10:30 AM
JBoss 4.0.2 & Hibernate 3.0 & MySQL 5.0
I am new to Hibernate. I am trying to create the "Cat" persistence example of Hibernate. The Cat table exists. I have deployed the EAR file. I wrote a simple servlet as follows:
public class HibernateExampleServlet extends HttpServlet { protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // ServletOutputStream out = response.getOutputStream(); // out.println("<html><body><h1>Hello World!</h1></body></html>"); Session session = HibernateUtil.currentSession(); Transaction tx = session.beginTransaction(); Cat princess = new Cat(); princess.setName("Princess"); princess.setSex('F'); princess.setWeight(7.4f); session.save(princess); tx.commit(); HibernateUtil.closeSession(); } }
I get a "JTA Commit failed" exception caused by a NullPointerException as follows:
09:57:19,720 ERROR [JTATransaction] JTA commit failed org.jboss.tm.JBossRollbackException: Unable to commit, tx=TransactionImpl:XidImpl[FormatId=257, GlobalId=PADYLAPTOP/14, BranchQual=, localId=14] statu s=STATUS_NO_TRANSACTION; - nested throwable: (java.lang.NullPointerException) at org.jboss.tm.TransactionImpl.commit(TransactionImpl.java:344) at org.jboss.tm.TxManager.commit(TxManager.java:200) at org.jboss.tm.usertx.client.ServerVMClientUserTransaction.commit(ServerVMClientUserTransaction.java:126) at org.hibernate.transaction.JTATransaction.commit(JTATransaction.java:130) at com.selfstudy.hibernate.example1.HibernateExampleServlet.service(HibernateExampleServlet.java:39) at javax.servlet.http.HttpServlet.service(HttpServlet.java:810) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:75) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:39) at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:147) at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:53) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:825) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:743) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112) at java.lang.Thread.run(Thread.java:534) Caused by: java.lang.NullPointerException at com.mysql.jdbc.PreparedStatement.asSql(PreparedStatement.java:1845) at com.mysql.jdbc.PreparedStatement.toString(PreparedStatement.java:1770) at java.lang.String.valueOf(String.java:2131) at java.lang.StringBuffer.append(StringBuffer.java:370) at com.mysql.jdbc.trace.Tracer.printParameters(Tracer.aj:240) at com.mysql.jdbc.trace.Tracer.printEntering(Tracer.aj:167) at com.mysql.jdbc.trace.Tracer.entry(Tracer.aj:126) at com.mysql.jdbc.trace.Tracer.ajc$before$com_mysql_jdbc_trace_Tracer$1$f51c62b8(Tracer.aj:45) at com.mysql.jdbc.Connection.registerStatement(Connection.java) at com.mysql.jdbc.Statement.<init>(Statement.java:171) at com.mysql.jdbc.PreparedStatement.<init>(PreparedStatement.java:139) at com.mysql.jdbc.ServerPreparedStatement.toString(ServerPreparedStatement.java:851) at java.lang.String.valueOf(String.java:2131) at java.lang.StringBuffer.append(StringBuffer.java:370) at com.mysql.jdbc.trace.Tracer.printParameters(Tracer.aj:240) at com.mysql.jdbc.trace.Tracer.printEntering(Tracer.aj:167) at com.mysql.jdbc.trace.Tracer.entry(Tracer.aj:126) at com.mysql.jdbc.trace.Tracer.ajc$before$com_mysql_jdbc_trace_Tracer$1$f51c62b8(Tracer.aj:45) at com.mysql.jdbc.Connection.registerStatement(Connection.java) at com.mysql.jdbc.Statement.<init>(Statement.java:171) at com.mysql.jdbc.PreparedStatement.<init>(PreparedStatement.java:201) at com.mysql.jdbc.ServerPreparedStatement.<init>(ServerPreparedStatement.java:133) at com.mysql.jdbc.Connection.prepareStatement(Connection.java:1370) at com.mysql.jdbc.Connection.prepareStatement(Connection.java:1335) at org.jboss.resource.adapter.jdbc.BaseWrapperManagedConnection.prepareStatement(BaseWrapperManagedConnection.java:355) at org.jboss.resource.adapter.jdbc.WrappedConnection.prepareStatement(WrappedConnection.java:205) at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:383) at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:74) at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:67) at org.hibernate.jdbc.AbstractBatcher.prepareBatchStatement(AbstractBatcher.java:148) at org.hibernate.persister.entity.BasicEntityPersister.insert(BasicEntityPersister.java:1829) at org.hibernate.persister.entity.BasicEntityPersister.insert(BasicEntityPersister.java:2190) at org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:46) at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:239) at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:223) at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:136) at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:274) at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27) at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:680) at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:309) at org.hibernate.transaction.CacheSynchronization.beforeCompletion(CacheSynchronization.java:58) at org.jboss.tm.TransactionImpl.doBeforeCompletion(TransactionImpl.java:1384) at org.jboss.tm.TransactionImpl.beforePrepare(TransactionImpl.java:1076) at org.jboss.tm.TransactionImpl.commit(TransactionImpl.java:296) ... 24 more
Here is some info from the system out during deployment:
09:56:28,326 INFO [EARDeployer] Init J2EE application: file:/C:/javasoftware/jboss-4.0.2RC1/server/default/deploy/HibernateExample.ear 09:56:36,678 INFO [Environment] Hibernate 3.0.2 09:56:36,698 INFO [Environment] hibernate.properties not found 09:56:36,698 INFO [Environment] using CGLIB reflection optimizer 09:56:36,698 INFO [Environment] using JDK 1.4 java.sql.Timestamp handling 09:56:36,938 INFO [Hibernate] Using JDBC batch size : null 09:56:36,948 INFO [Configuration] Searching for mapping documents in jar: HibernateExample.har 09:56:36,958 INFO [Configuration] Found mapping documents in jar: Cat.hbm.xml 09:56:38,220 INFO [HbmBinder] Mapping class: com.selfstudy.hibernate.example1.Cat -> CAT 09:56:38,450 INFO [Configuration] processing extends queue 09:56:38,450 INFO [Configuration] processing collection mappings 09:56:38,450 INFO [Configuration] processing association property references 09:56:38,450 INFO [Configuration] processing foreign key constraints 09:56:38,691 INFO [NamingHelper] JNDI InitialContext properties:{} 09:56:38,701 INFO [DatasourceConnectionProvider] Using datasource: java:/MySqlDS 09:56:38,861 INFO [STDOUT] Mon Jul 04 09:56:38 EDT 2005 TRACE: --> NonRegisteringDriver.java:223 com.mysql.jdbc.NonRegisteringDriver.acceptsURL("jdb c:mysql://localhost:3306/jboss") ... ... ... 09:56:46,141 INFO [SettingsFactory] RDBMS: MySQL, version: 5.0.6-beta-nt 09:56:46,141 INFO [SettingsFactory] JDBC driver: MySQL-AB JDBC Driver, version: mysql-connector-java-3.1.8 ( $Date: 2005/04/14 20:36:13 $, $Revision: 1.27.4.64 $ ) 09:56:46,191 INFO [Dialect] Using dialect: org.hibernate.dialect.MySQLDialect 09:56:46,201 INFO [SettingsFactory] JDBC batch size: 15 09:56:46,201 INFO [SettingsFactory] JDBC batch updates for versioned data: disabled 09:56:46,201 INFO [SettingsFactory] Scrollable result sets: enabled 09:56:46,201 INFO [SettingsFactory] JDBC3 getGeneratedKeys(): enabled 09:56:46,201 INFO [SettingsFactory] Aggressive release : disabled 09:56:46,201 INFO [SettingsFactory] Maximum outer join fetch depth: 2 09:56:46,201 INFO [SettingsFactory] Default batch fetch size: 1 09:56:46,201 INFO [SettingsFactory] Generate SQL with comments: disabled 09:56:46,211 INFO [SettingsFactory] Order SQL updates by primary key: disabled 09:56:46,211 INFO [SettingsFactory] Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory 09:56:46,211 INFO [ASTQueryTranslatorFactory] Using ASTQueryTranslatorFactory 09:56:46,221 INFO [SettingsFactory] Query language substitutions: {} 09:56:46,221 INFO [TransactionFactoryFactory] Transaction strategy: org.hibernate.transaction.JTATransactionFactory 09:56:46,221 INFO [NamingHelper] JNDI InitialContext properties:{} 09:56:46,231 INFO [TransactionManagerLookupFactory] instantiating TransactionManagerLookup: org.hibernate.transaction.JBossTransactionManagerLookup 09:56:46,231 INFO [TransactionManagerLookupFactory] instantiated TransactionManagerLookup 09:56:46,231 INFO [TransactionManagerLookupFactory] instantiating TransactionManagerLookup: org.hibernate.transaction.JBossTransactionManagerLookup 09:56:46,231 INFO [TransactionManagerLookupFactory] instantiated TransactionManagerLookup 09:56:46,231 INFO [SettingsFactory] Automatic flush during beforeCompletion(): enabled 09:56:46,231 INFO [SettingsFactory] Automatic session close at end of transaction: enabled 09:56:46,231 INFO [SettingsFactory] Second-level cache: enabled 09:56:46,231 INFO [SettingsFactory] Query cache: disabled 09:56:46,231 INFO [SettingsFactory] Cache provider: org.hibernate.cache.HashtableCacheProvider 09:56:46,242 INFO [SettingsFactory] Optimize cache for minimal puts: disabled 09:56:46,242 INFO [SettingsFactory] Structured second-level cache entries: enabled 09:56:46,272 INFO [SettingsFactory] Statistics: disabled 09:56:46,272 INFO [SettingsFactory] Deleted entity synthetic identifier rollback: disabled 09:56:46,272 INFO [SettingsFactory] Default entity-mode: pojo 09:56:46,552 INFO [SessionFactoryImpl] building session factory 09:56:46,732 INFO [STDOUT] Mon Jul 04 09:56:46 EDT 2005 TRACE: --> Statement.java:1627 com.mysql.jdbc.Statement.finalize() 09:56:46,732 INFO [STDOUT] Mon Jul 04 09:56:46 EDT 2005 TRACE: <-- Statement.java:1627 com.mysql.jdbc.Statement.finalize(..) returning null 09:56:46,732 INFO [STDOUT] Mon Jul 04 09:56:46 EDT 2005 TRACE: --> ResultSet.java:7079 com.mysql.jdbc.ResultSet.finalize() 09:56:46,732 INFO [STDOUT] Mon Jul 04 09:56:46 EDT 2005 TRACE: <-- ResultSet.java:7079 com.mysql.jdbc.ResultSet.finalize(..) returning null 09:56:47,373 INFO [SessionFactoryObjectFactory] Not binding factory to JNDI, no JNDI name configured 09:56:47,383 INFO [NamingHelper] JNDI InitialContext properties:{} 09:56:47,383 INFO [SessionFactoryImpl] Checking 0 named queries 09:56:47,383 INFO [Hibernate] SessionFactory successfully built and bound into JNDI [java:/hibernate/SessionFactory] 09:56:47,403 INFO [TomcatDeployer] deploy, ctxPath=/he, warUrl=file:/C:/javasoftware/jboss-4.0.2RC1/server/default/tmp/deploy/tmp28415HibernateExampl e.ear-contents/HibernateExample-exp.war/ 09:56:48,855 INFO [EARDeployer] Started J2EE application: file:/C:/javasoftware/jboss-4.0.2RC1/server/default/deploy/HibernateExample.ear
Any help is appreciated.
Thanks
-- pady