Page 1 of 3 123 LastLast
Results 1 to 10 of 23

Thread: CannotCreateTransactionException

  1. #1

    Default CannotCreateTransactionException

    Hello All,
    I am trying to save object and I am seeing these exceptions

    Code:
    org.springframework.transaction.CannotCreateTransactionException: Could not open Hibernate Session for transaction; nested exception is java.lang.NullPointerException: null
    java.lang.NullPointerException
    	at org.springframework.orm.hibernate3.HibernateTransactionManager.doBegin(HibernateTransactionManager.java:465)
    	at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:282)
    	at org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:225)
    	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:89)
    	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170)
    	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:176)
    	at $Proxy1.saveOperation(Unknown Source)
    	at com.my.com.ws.MyWebService.someOperation(MyWebService.java:138)
    	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:585)
    The spring configuration file is as follows. I am trying to use txProxyTemplate for the service layer.

    Code:
    	<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
    		<property name="driverClass" value="oracle.jdbc.driver.OracleDriver"/>
    		<property name="jdbcUrl" value="jjdbc:oracle:thin:@localhost:1521:MY"/>
    		<property name="user" value="User"/>
    		<property name="password" value="Pass"/>
    		<property name="minPoolSize" value="15"/>
    		<property name="maxPoolSize" value="200"/>
    		<property name="maxStatements" value="100"/>
    		<property name="checkoutTimeout" value="3000"/>
    		<property name="idleConnectionTestPeriod" value="60"/>
    	</bean>
    	
    	<bean id="nativeJdbcExtractor" class="org.springframework.jdbc.support.nativejdbc.SimpleNativeJdbcExtractor"/>
    	      <bean id="oracleLobHandler" class="org.springframework.jdbc.support.lob.OracleLobHandler">
    	          <property name="nativeJdbcExtractor">
    	              <ref local="nativeJdbcExtractor"/>
    	          </property>
    	      </bean>
    	
    	    <!-- Hibernate SessionFactory -->
    	    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    	        <property name="lobHandler">
    	            <ref bean="oracleLobHandler"/>
    	        </property>
    	        <property name="dataSource"><ref local="dataSource"/></property>
    	       <property name="mappingDirectoryLocations">
    	            <list><value>/WEB-INF/classes</value></list>
    	        </property>
    	
    	        <property name="hibernateProperties">
    	        <props>
    	            <prop key="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</prop>
    	            <prop key="hibernate.max_fetch_depth">3</prop>
    	            <prop key="hibernate.show_sql">true</prop>
    	            <prop key="hibernate.jdbc.use_scrollable_resultset">false</prop>
    	            <prop key="hibernate.connection.release_mode">auto</prop>
    	        </props>
    	        </property>
    	    </bean>
    	
    	    <!-- Transaction manager for a single Hibernate SessionFactory (alternative to JTA) -->
    	    <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    	        <property name="sessionFactory"><ref local="sessionFactory"/></property>
    	    </bean>
    	
    	   
    	    <bean id="txProxyTemplate" abstract="true" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
    	        <property name="transactionManager"><ref local="transactionManager"/></property>
    	        <property name="transactionAttributes">
    	            <props>
    	                <prop key="save*">PROPAGATION_REQUIRED</prop>
    	                <prop key="delete*">PROPAGATION_REQUIRED</prop>
    	                <prop key="remove*">PROPAGATION_REQUIRED</prop>
    	                <prop key="*">PROPAGATION_SUPPORTS</prop>
    	            </props>
    	        </property>
        	</bean>
        	
        	<bean id="ServiceDAO" class="com.my.commerce.dao.ServiceHibernateDAOImpl">
    	        <property name="sessionFactory"><ref bean="sessionFactory"/></property>
    	        <property name="dao"><ref bean="iDAO"/></property>
    	        <property name="ssDao"><ref bean="ssDao"/></property>
    	        <property name="mServiceDao"><ref bean="mService"/></property>
    	    </bean>
    	    
    	    <bean id="serviceTarget" class="com.my.services.ServiceImpl">
    	    	  <property name="serviceDAO"><ref local="ServiceDAO"/></property>
    	    </bean>
    	    
    	    <bean id="myService"  parent="txProxyTemplate">
    	        <property name="target"><ref local="serviceTarget"/></property>
        	</bean>
    I try to get the instance of mySevice in code as follows
    Code:
    	MyService service = BeanConfigFactory.getBean("myService");
    	service.saveOperation(); //this is where it fails.
    I am using Tomcat 5.5 with spring and hibernate. Any other save operation from dao which does not uses txProxyTemplate works fine, Any idea whats going wrong here.

    -- springnewbie
    Last edited by springnewbie; Dec 28th, 2008 at 10:45 AM.

  2. #2
    Join Date
    Sep 2004
    Posts
    1,086

    Default

    Try to remove <prop key="hibernate.connection.release_mode">auto</prop> from the hibernate config.

  3. #3

    Default

    Remove hibernate.connection.release_mode from confg still the same error

  4. #4
    Join Date
    Sep 2004
    Posts
    1,086

    Default

    Hmm... Which version of Spring is that? And please post the whole stacktrace.

  5. #5

    Default

    Spring version is 1.2.6
    Hibernate 3.0.5

    Code:
    org.springframework.transaction.CannotCreateTransactionException: Could not open Hibernate Session for transaction; nested exception is java.lang.NullPointerException: null
    java.lang.NullPointerException
    	at org.springframework.orm.hibernate3.HibernateTransactionManager.doBegin(HibernateTransactionManager.java:465)
    	at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:282)
    	at org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:225)
    	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:89)
    	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170)
    	at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:643)
    	at com.my.services.ServiceImpl$$EnhancerByCGLIB$$ae789704_2.saveOperation(<generated>)
    	at com.my.ws.MyWebServiceImpl.createObj(Unknown Source)
    	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:585)
    	at com.sun.xml.ws.api.server.InstanceResolver$1.invoke(InstanceResolver.java:246)
    	at com.sun.xml.ws.server.InvokerTube$2.invoke(InvokerTube.java:146)
    	at com.sun.xml.ws.server.sei.EndpointMethodHandler.invoke(EndpointMethodHandler.java:257)
    	at com.sun.xml.ws.server.sei.SEIInvokerTube.processRequest(SEIInvokerTube.java:93)
    	at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:595)
    	at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:554)
    	at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:539)
    	at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:436)
    	at com.sun.xml.ws.server.WSEndpointImpl$2.process(WSEndpointImpl.java:243)
    	at com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:444)
    	at com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:244)
    	at com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapter.java:135)
    	at com.sun.xml.ws.transport.http.servlet.WSServletDelegate.doGet(WSServletDelegate.java:129)
    	at com.sun.xml.ws.transport.http.servlet.WSServletDelegate.doPost(WSServletDelegate.java:160)
    	at com.sun.xml.ws.transport.http.servlet.WSServlet.doPost(WSServlet.java:75)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    	at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:174)
    	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
    	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
    	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
    	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
    	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
    	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
    	at java.lang.Thread.run(Thread.java:595)

  6. #6
    Join Date
    Sep 2004
    Posts
    1,086

    Default

    Versions are far too old, it will be very hard to diagnose/fix this. Can you migrate to a newer Spring and Hibernate version?

  7. #7

    Default

    I have to change it and see

  8. #8

    Default

    Still the same exception. no difference.

    I am now using spring 2.5.x and Hibernate 3.3 though I didnot change any of the spring config files. I hope that should not make any difference

  9. #9
    Join Date
    Aug 2006
    Location
    Now Germany, previously Ukraine
    Posts
    1,546

    Default

    And how your saveOperation() is implemented?

    BTW, as far as I understand you are using not ApplicationContext but BeanFactory, which is not recommended, see chapters 3.1 and 3.8.1 is Spring Reference.

    Quote Originally Posted by springnewbie View Post
    Still the same exception. no difference.

    I am now using spring 2.5.x and Hibernate 3.3 though I didnot change any of the spring config files. I hope that should not make any difference

  10. #10

    Default

    saveOperation() is inside a service layer. In this method we try to save all our entities.

    I will look at the spring reference and will try to implement ApplicationContext.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •