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
>

Reply via email to