cancel
Showing results for 
Search instead for 
Did you mean: 

Hibernate session.save() Error

Former Member
0 Kudos

Hi,

We are migrating from Websphere to SAP WEB AS 6.40.

Our application has 2 EAR files.One for Server components(like EJBs)and other is WEB application which refers to EJBs.

Now while deploying EJBs EAR, from logger it seens that Hibernate POJO mapping is succcessful.

But at first insert in database from our web application using,

[code]Session session = getCurrentSession();

Object ret = session.save(mypojo);[/code]

we got following Exception :

[code]2006-07-13 17:39:50,859 DEBUG [org.hibernate.impl.SessionImpl] - closing session

2006-07-13 17:39:50,859 DEBUG [org.hibernate.jdbc.ConnectionManager] - closing JDBC connection [ (open PreparedStatements: 1, globally: 1) (open ResultSets: 0, globally: 0)]

2006-07-13 17:39:50,859 DEBUG [org.hibernate.jdbc.JDBCContext] - after transaction completion

2006-07-13 17:39:50,859 DEBUG [org.hibernate.impl.SessionImpl] - after transaction completion

2006-07-13 17:39:50,968 ERROR [com.tdemand.server.service.security.impl.SecurityServiceImpl] - com.sap.engine.services.ejb.exceptions.BaseRemoteException: Exception in method authenticate.

at com.tdemand.ejbs.security.SecurityMgrObjectImpl40.authenticate(SecurityMgrObjectImpl40.java:836)

at com.tdemand.ejbs.security.SecurityMgr_Stub.authenticate(SecurityMgr_Stub.java:585)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:324)

at com.sap.engine.services.ejb.session.stateless_sp5.ObjectStubProxyImpl.invoke(ObjectStubProxyImpl.java:187)

at $Proxy167.authenticate(Unknown Source)

at com.tdemand.server.service.security.impl.SecurityServiceImpl.authenticate(SecurityServiceImpl.java:85)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:324)

at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:388)

at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:283)

at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323)

at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)

at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)

at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)

at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:453)

at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)

at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)

at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:385)

at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:263)

at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:340)

at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:318)

at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:821)

at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:239)

at com.sap.engine.services.httpserver.server.Client.handle(Client.java:92)

at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:147)

at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:37)

at com.sap.engine.core.cluster.impl6.session.UnorderedChannel$MessageRunner.run(UnorderedChannel.java:71)

at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)

at java.security.AccessController.doPrivileged(Native Method)

at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:94)

at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:162)

Caused by: java.lang.AbstractMethodError: com.sap.engine.services.dbpool.cci.ConnectionHandle.prepareStatement(Ljava/lang/String;I)Ljava/sql/PreparedStatement;

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:324)

at org.hibernate.util.GetGeneratedKeysHelper.prepareStatement(GetGeneratedKeysHelper.java:39)

at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:389)

at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:76)

at org.hibernate.persister.entity.BasicEntityPersister.insert(BasicEntityPersister.java:1739)

at org.hibernate.persister.entity.BasicEntityPersister.insert(BasicEntityPersister.java:2178)

at org.hibernate.action.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:34)

at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:239)

at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:240)

at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:160)

at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:95)

at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:184)

at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:33)

at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:173)

at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:27)

at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:69)

at org.hibernate.impl.SessionImpl.save(SessionImpl.java:481)

at org.hibernate.impl.SessionImpl.save(SessionImpl.java:476)

at com.tdemand.server.persistent.hibernate.dao.SecurityDAOImpl.createUserSession(SecurityDAOImpl.java:308)

at com.tdemand.ejbs.security.SecurityMgrBean.newSession(SecurityMgrBean.java:707)

at com.tdemand.ejbs.security.SecurityMgrBean.createSession(SecurityMgrBean.java:626)

at com.tdemand.ejbs.security.SecurityMgrBean.authenticate(SecurityMgrBean.java:200)

at com.tdemand.ejbs.security.SecurityMgrObjectImpl40.authenticate(SecurityMgrObjectImpl40.java:818)

... 38 more

; nested exception is:

java.lang.AbstractMethodError: com.sap.engine.services.dbpool.cci.ConnectionHandle.prepareStatement(Ljava/lang/String;I)Ljava/sql/PreparedStatement;

java.rmi.RemoteException: com.sap.engine.services.ejb.exceptions.BaseRemoteException: Exception in method authenticate.

at com.tdemand.ejbs.security.SecurityMgrObjectImpl40.authenticate(SecurityMgrObjectImpl40.java:836)

at com.tdemand.ejbs.security.SecurityMgr_Stub.authenticate(SecurityMgr_Stub.java:585)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:324)

at com.sap.engine.services.ejb.session.stateless_sp5.ObjectStubProxyImpl.invoke(ObjectStubProxyImpl.java:187)

at $Proxy167.authenticate(Unknown Source)

at com.tdemand.server.service.security.impl.SecurityServiceImpl.authenticate(SecurityServiceImpl.java:85)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:324)

at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:388)

at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:283)

at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323)

at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)

at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)

at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)

at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:453)

at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)

at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)

at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:385)

at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:263)

at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:340)

at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:318)

at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:821)

at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:239)

at com.sap.engine.services.httpserver.server.Client.handle(Client.java:92)

at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:147)

at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:37)

at com.sap.engine.core.cluster.impl6.session.UnorderedChannel$MessageRunner.run(UnorderedChannel.java:71)

at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)

at java.security.AccessController.doPrivileged(Native Method)

at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:94)

at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:162)

Caused by: java.lang.AbstractMethodError: com.sap.engine.services.dbpool.cci.ConnectionHandle.prepareStatement(Ljava/lang/String;I)Ljava/sql/PreparedStatement;

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:324)

at org.hibernate.util.GetGeneratedKeysHelper.prepareStatement(GetGeneratedKeysHelper.java:39)

at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:389)

at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:76)

at org.hibernate.persister.entity.BasicEntityPersister.insert(BasicEntityPersister.java:1739)

at org.hibernate.persister.entity.BasicEntityPersister.insert(BasicEntityPersister.java:2178)

at org.hibernate.action.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:34)

at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:239)

at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:240)

at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:160)

at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:95)

at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:184)

at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:33)

at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:173)

at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:27)

at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:69)

at org.hibernate.impl.SessionImpl.save(SessionImpl.java:481)

at org.hibernate.impl.SessionImpl.save(SessionImpl.java:476)

at com.tdemand.server.persistent.hibernate.dao.SecurityDAOImpl.createUserSession(SecurityDAOImpl.java:308)

at com.tdemand.ejbs.security.SecurityMgrBean.newSession(SecurityMgrBean.java:707)

at com.tdemand.ejbs.security.SecurityMgrBean.createSession(SecurityMgrBean.java:626)

at com.tdemand.ejbs.security.SecurityMgrBean.authenticate(SecurityMgrBean.java:200)

at com.tdemand.ejbs.security.SecurityMgrObjectImpl40.authenticate(SecurityMgrObjectImpl40.java:818)

... 38 more[/code]

Plz Help.

Regards,

Sagar.

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

Hi,

I solved the problem.

Its bcoz of JDBC and Hibernate version mismatch.

set property <b>hibernate.jdbc.use_get_generated_keys = false</b> in hibernate.cfg.xml file.

The reason is : hibernate.jdbc.use_get_generated_keys property enable use of JDBC3 PreparedStatement.getGeneratedKeys() to retrieve natively generated keys after insert.It requires JDBC3+ driver and JRE1.4+, set to false if your driver has problems with the Hibernate identifier generators. By default, tries to determine the driver capabilites using connection metadata.

We were using JDBC2.0 and jdk1.4+. so after setting this proprty "false" and it worked.

Hope this will help others !

Regards,

Sagar Powar.