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