Hello Richard, Maybe you need to use @Transactional above your dao method? Hope this helps.
Best regards, Karolina Rusin 2010/5/8 Richard Slide <richard.sl...@gmail.com> > Hello all, > i try to do a simple web application with the classic layout > Wicket->Spring->Hibernate > > When i try to make a simple request i receive the following error. > > WicketMessage: Error attaching this container for rendering: [Page class = > ch.myexample.ListContacts, id = 0, version = 0] > Root cause: > org.hibernate.HibernateException: createCriteria is not valid without > active > transaction > > In IMHO all file conf seams to be correct correct... bat i don't undestand > hibenate dosen't find the correct session. > > At UI level i load the data with LoadableDetachableModel > > IModel contactsModel = new LoadableDetachableModel() { > protected Object load() { > return > WicketApplication.get().getContactService().findAllContacts(); > } > }; > > --applicationContext from here -- > > <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> > <property name="driverClassName"> > <value>${jdbc.driver}</value> > </property> > <property name="url"> > <value>${jdbc.url}</value> > </property> > <property name="username"> > <value>${jdbc.username}</value> > </property> > <property name="password"> > <value>${jdbc.password}</value> > </property> > </bean> > > <!-- hibernate session factory --> > <bean id="sessionFactory" > > > class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> > <property name="dataSource" ref="dataSource" /> > <property name="hibernateProperties"> > <props> > <prop key="hibernate.dialect">${hibernate.dialect}</prop> > <prop key="hibernate.connection.pool_size">5</prop> > <prop > key="hibernate.current_session_context_class">thread</prop> > <prop key="hibernate.show_sql">true</prop> > <prop > key="hibernate.cglib.use_reflection_optimizer">true</prop> > <prop > > key="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</prop> > <prop > key="hibernate.hibernate.cache.use_query_cache">true</prop> > </props> > </property> > <property name="annotatedClasses"> > <list> > <value> > ch.myexample.domain.Contact > </value> > </list> > </property> > </bean> > > <!-- setup transaction manager --> > <bean id="transactionManager" > > class="org.springframework.orm.hibernate3.HibernateTransactionManager"> > <property name="sessionFactory"> > <ref bean="sessionFactory" /> > </property> > </bean> > <tx:annotation-driven /> > <bean id="ContactDao" class="ch.myexample.dao.impl.ContactDaoImpl"> > <property name="sessionFactory" ref="sessionFactory" /> > </bean> > <bean id="LocalServiceService" > class="ch.myexample.services.LocalServiceImpl"> > <property name="contactDao" ref="ContactDao" /> > </bean> > <bean id="wicketApplication" class="ch.myexample.WicketApplication"> > </bean> > </beans> > > > -- > --applicationContext to here -- > > and web.xml > > <context-param> > <param-name>contextConfigLocation</param-name> > <param-value> classpath:applicationContext.xml</param-value> > </context-param> > <filter> > <filter-name>wicket.WebProject</filter-name> > <filter-class>org.apache.wicket.protocol.http.WicketFilter > </filter-class> > <init-param> > <param-name>applicationFactoryClassName > </param-name> > <param-value> > org.apache.wicket.spring.SpringWebApplicationFactory > </param-value> > </init-param> > <init-param> > <param-name>applicationBean</param-name> > <param-value> wicketApplication</param-value> > </init-param> > </filter> > <filter> > <filter-name>opensessioninview</filter-name> > <filter-class> > > org.springframework.orm.hibernate3.support.OpenSessionInViewFilter > </filter-class> > </filter> > <filter-mapping> > <filter-name>opensessioninview</filter-name> > <url-pattern>/*</url-pattern> > </filter-mapping> > <filter-mapping> > <filter-name>wicket.WebProject</filter-name> > <url-pattern>/*</url-pattern> > </filter-mapping> > <listener> > > <listener-class>org.springframework.web.context.ContextLoaderListener > </listener-class> > </listener> > </web-app> > > > Could you tell me where is my mistake please > > Cheers > > --Richard >