Hello All,
I am trying to save object and I am seeing these exceptions
The spring configuration file is as follows. I am trying to use txProxyTemplate for the service layer.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)
I try to get the instance of mySevice in code as followsCode:<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 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.Code:MyService service = BeanConfigFactory.getBean("myService"); service.saveOperation(); //this is where it fails.
-- springnewbie


Reply With Quote
