Why will you lose that? 2009/8/17 Gonzalo Aguilar Delgado <g...@aguilardelgado.com>: > Sure? > > > But I will loose control over how transactions are managed... > > > > El vie, 14-08-2009 a las 22:14 +0200, nino martinez wael escribió: > >> Yup so you should either use open session in view or more preferred >> AFAIK detachable models. >> >> 2009/8/14 Russell Simpkins <russellsimpk...@hotmail.com>: >> > >> > Errors like those are caused when the hibernate session is closed too soon. >> > https://www.hibernate.org/43.html >> > Russ >> > >> >> Subject: Re: CORRECT portlet+spring+hibernate configuration (Two options, >> >> what's right?) >> >> From: g...@aguilardelgado.com >> >> To: users@wicket.apache.org >> >> Date: Fri, 14 Aug 2009 11:01:05 +0200 >> >> >> >> About the error I mentioned the exception it throws is: >> >> >> >> Caused by: org.hibernate.LazyInitializationException: failed to lazily >> >> initialize a collection of role: >> >> com.level2crm.hibernate.generated.User.contactBasicDetails, no session >> >> or session was closed >> >> at >> >> org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:358) >> >> at >> >> org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationExceptionIfNotConnected(AbstractPersistentCollection.java:350) >> >> at >> >> org.hibernate.collection.AbstractPersistentCollection.readSize(AbstractPersistentCollection.java:97) >> >> at >> >> org.hibernate.collection.PersistentSet.isEmpty(PersistentSet.java:146) >> >> at >> >> com.level2crm.portals.crm.wicket.customerdetail.pages.ViewModePage >> >> $1.load(ViewModePage.java:54) >> >> at >> >> org.apache.wicket.model.LoadableDetachableModel.getObject(LoadableDetachableModel.java:122) >> >> at >> >> org.apache.wicket.Component.getDefaultModelObject(Component.java:1664) >> >> at >> >> org.apache.wicket.markup.html.list.ListView.getViewSize(ListView.java:221) >> >> at >> >> org.apache.wicket.markup.html.list.ListView.onPopulate(ListView.java:525) >> >> at >> >> org.apache.wicket.markup.repeater.AbstractRepeater.onBeforeRender(AbstractRepeater.java:131) >> >> at >> >> org.apache.wicket.Component.internalBeforeRender(Component.java:1061) >> >> at org.apache.wicket.Component.beforeRender(Component.java:1095) >> >> at >> >> org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1751) >> >> ... 109 more >> >> >> >> >> >> May this have something to do with selected configuration? >> >> >> >> Thank you again. >> >> >> >> >> >> El vie, 14-08-2009 a las 10:53 +0200, Gonzalo Aguilar Delgado escribió: >> >> >> >> > Hi again, >> >> > >> >> > For a shake of completeness y will provide two of the working >> >> > configurations I've found to work. I would know what's the one >> >> > correct and why. Someone can throw a little bit light on this issue, >> >> > please? >> >> > >> >> > -=[ First Choice ]=- >> >> > >> >> > >> >> > ----------------------------------------- >> >> > web.xml >> >> > ----------------------------------------- >> >> > <?xml version="1.0" encoding="UTF-8"?> >> >> > <!-- >> >> > Licensed to the Apache Software Foundation (ASF) under one >> >> > or more contributor license agreements. See the NOTICE file >> >> > distributed with this work for additional information >> >> > regarding copyright ownership. The ASF licenses this file >> >> > to you under the Apache License, Version 2.0 (the >> >> > "License"); you may not use this file except in compliance >> >> > with the License. You may obtain a copy of the License at >> >> > >> >> > http://www.apache.org/licenses/LICENSE-2.0 >> >> > >> >> > Unless required by applicable law or agreed to in writing, >> >> > software distributed under the License is distributed on an >> >> > "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >> >> > KIND, either express or implied. See the License for the >> >> > specific language governing permissions and limitations >> >> > under the License. >> >> > --> >> >> > <web-app xmlns="http://java.sun.com/xml/ns/j2ee" >> >> > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" >> >> > xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee >> >> > http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> >> >> > <display-name>My Portlet Application</display-name> >> >> > >> >> > <!-- For deploying on Websphere: disable WebSphere default >> >> > portletcontainer >> >> > However: if you actually want to deploy on WebSphere Portal, >> >> > comment the following out --> >> >> > >> >> > <context-param> >> >> > >> >> > <param-name>com.ibm.websphere.portletcontainer.PortletDeploymentEnabled</param-name> >> >> > <param-value>false</param-value> >> >> > </context-param> >> >> > >> >> > <!-- This is for Spring self configuration --> >> >> > <context-param> >> >> > <param-name>contextConfigLocation</param-name> >> >> > <param-value>/WEB-INF/applicationContext.xml</param-value> >> >> > </context-param> >> >> > >> >> > <listener> >> >> > >> >> > <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> >> >> > </listener> >> >> > >> >> > <!-- Enable the filters for Hibernate (How to check it's >> >> > working?)--> >> >> > >> >> > <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>/hibernate/*</url-pattern> >> >> > </filter-mapping> >> >> > <!-- END hibernate filters --> >> >> > >> >> > >> >> > <!-- Wicket filters --> >> >> > <filter> >> >> > <filter-name>CustomerListPortlet</filter-name> >> >> > >> >> > <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class> >> >> > <init-param> >> >> > <param-name>applicationClassName</param-name> >> >> > >> >> > <param-value>com.level2crm.portals.crm.wicket.customerlist.WicketCustomerListApplication</param-value> >> >> > <!-- Normally this should be >> >> > org.apache.wicket.spring.SpringWebApplicationFactory, but why? --> >> >> > </init-param> >> >> > <init-param> >> >> > <param-name>portletOnlyFilter</param-name> >> >> > <param-value>true</param-value> >> >> > </init-param> >> >> > </filter> >> >> > <filter-mapping> >> >> > <filter-name>CustomerListPortlet</filter-name> >> >> > <url-pattern>/CustomerListPortlet/*</url-pattern> >> >> > <dispatcher>REQUEST</dispatcher> >> >> > <dispatcher>INCLUDE</dispatcher> >> >> > <dispatcher>FORWARD</dispatcher> >> >> > </filter-mapping> >> >> > <!-- END Wicket filters --> >> >> > >> >> > <context-param> >> >> > <param-name>org.apache.wicket.detectPortletContext</param-name> >> >> > <param-value>true</param-value> >> >> > </context-param> >> >> > <!-- END Wicket filters --> >> >> > >> >> > >> >> > <!-- >> >> > Serves static resource content from .jar files such as >> >> > spring-faces.jar >> >> > --> >> >> > <!-- >> >> > <servlet> >> >> > <servlet-name>Resource Servlet</servlet-name> >> >> > >> >> > <servlet-class>org.springframework.js.resource.ResourceServlet</servlet-class> >> >> > <load-on-startup>0</load-on-startup> >> >> > </servlet> >> >> > >> >> > >> >> > >> >> > <!-- Added when deployed with maven --> >> >> > <servlet> >> >> > <description>MVC Servlet for Jetspeed Portlet >> >> > Applications</description> >> >> > <display-name>Jetspeed Container</display-name> >> >> > <servlet-name>JetspeedContainer</servlet-name> >> >> > >> >> > <servlet-class>org.apache.jetspeed.container.JetspeedContainerServlet</servlet-class> >> >> > <init-param> >> >> > <param-name>contextName</param-name> >> >> > <param-value>crmportal-contact</param-value> >> >> > </init-param> >> >> > <load-on-startup>0</load-on-startup> >> >> > </servlet> >> >> > <servlet-mapping> >> >> > <servlet-name>JetspeedContainer</servlet-name> >> >> > <url-pattern>/container/*</url-pattern> >> >> > </servlet-mapping> >> >> > <jsp-config> >> >> > <taglib> >> >> > <taglib-uri>http://java.sun.com/portlet</taglib-uri> >> >> > >> >> > <taglib-location>/WEB-INF/tld/portlet.tld</taglib-location> >> >> > </taglib> >> >> > <taglib> >> >> > >> >> > <taglib-uri>http://java.sun.com/portlet_2_0</taglib-uri> >> >> > >> >> > <taglib-location>/WEB-INF/tld/portlet_2_0.tld</taglib-location> >> >> > </taglib> >> >> > </jsp-config> >> >> > >> >> > >> >> > </web-app> >> >> > >> >> > >> >> > ----------------------------------------- >> >> > portlet.xml >> >> > ----------------------------------------- >> >> > >> >> > <?xml version="1.0" encoding="UTF-8"?> >> >> > <!-- >> >> > Licensed to the Apache Software Foundation (ASF) under one >> >> > or more >> >> > contributor license agreements. See the NOTICE file >> >> > distributed with >> >> > this work for additional information regarding copyright >> >> > ownership. >> >> > The ASF licenses this file to you under the Apache License, >> >> > Version >> >> > 2.0 (the "License"); you may not use this file except in >> >> > compliance >> >> > with the License. You may obtain a copy of the License at >> >> > >> >> > http://www.apache.org/licenses/LICENSE-2.0 Unless required >> >> > by >> >> > applicable law or agreed to in writing, software >> >> > distributed under the >> >> > License is distributed on an "AS IS" BASIS, WITHOUT >> >> > WARRANTIES OR >> >> > CONDITIONS OF ANY KIND, either express or implied. See the >> >> > License for >> >> > the specific language governing permissions and limitations >> >> > under the >> >> > License. >> >> > --> >> >> > <portlet-app >> >> > xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd" >> >> > version="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >> >> > >> >> > xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd >> >> > http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd"> >> >> > >> >> > <portlet> >> >> > <description>Customer viewer</description> >> >> > <portlet-name>crm-customer-list</portlet-name> >> >> > <display-name>Customer list viewer</display-name> >> >> > >> >> > <portlet-class>com.level2crm.portals.crm.wicket.customerlist.CustomerListPortlet</portlet-class> >> >> > <init-param> >> >> > <name>wicketFilterPath</name> >> >> > <value>/CustomerListPortlet</value> >> >> > </init-param> >> >> > >> >> > <supports> >> >> > <mime-type>*/*</mime-type> >> >> > <portlet-mode>VIEW</portlet-mode> >> >> > <portlet-mode>EDIT</portlet-mode> >> >> > </supports> >> >> > <supported-locale>es</supported-locale> >> >> > <portlet-info> >> >> > <title>Customer list viewer</title> >> >> > <short-title>Customer list viewer</short-title> >> >> > <keywords>none</keywords> >> >> > </portlet-info> >> >> > >> >> > <supported-public-render-parameter>crmportal:userId</supported-public-render-parameter> >> >> > </portlet> >> >> > >> >> > </portlet-app> >> >> > >> >> > ----------------------------------------- >> >> > applicationContext.xml >> >> > ----------------------------------------- >> >> > >> >> > <?xml version="1.0" encoding="UTF-8"?> >> >> > <beans xmlns="http://www.springframework.org/schema/beans" >> >> > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >> >> > xmlns:tx="http://www.springframework.org/schema/tx" >> >> > xmlns:aop="http://www.springframework.org/schema/aop" >> >> > xsi:schemaLocation="http://www.springframework.org/schema/beans >> >> > http://www.springframework.org/schema/beans/spring-beans-2.5.xsd >> >> > http://www.springframework.org/schema/tx >> >> > http://www.springframework.org/schema/tx/spring-tx-2.5.xsd >> >> > http://www.springframework.org/schema/aop >> >> > http://www.springframework.org/schema/aop/spring-aop-2.5.xsd"> >> >> > >> >> > >> >> > <!-- Modules Includes --> >> >> > <import >> >> > resource="classpath:/conf/spring/hibernate-spring-beans.xml"/> >> >> > <!-- Here comes the connection string and the pool --> >> >> > <import >> >> > resource="classpath:/conf/spring/transaction-spring-beans.xml"/> >> >> > <!-- >> >> > Here comes the transaction management stuff --> >> >> > >> >> > <import >> >> > resource="classpath:/conf/spring/address-dao-spring-beans.xml"/> >> >> > <!-- >> >> > Here comes the basic data objects for DB management --> >> >> > <import >> >> > resource="classpath:/conf/spring/contact-dao-spring-beans.xml"/> >> >> > <!-- >> >> > Here comes the basic data objects for DB management --> >> >> > >> >> > <import >> >> > resource="classpath:/conf/spring/dao-manager-spring-beans.xml"/> >> >> > <!-- >> >> > Here comes the manager objects for DB management, they implement the >> >> > MODEL --> >> >> > >> >> > </beans> >> >> > >> >> > >> >> > .---------------------------------------- >> >> > Comments >> >> > ----------------------------------------- >> >> > >> >> > I found this to work well. Spring gets initialized and everything works. >> >> > The only problem I've found is that hibernate session does not start >> >> > when needed. >> >> > I have to check why. Maybe a problem with this configuration? >> >> > >> >> > >> >> > >> >> > >> >> > -=[ First Option ]=- >> >> > >> >> > >> >> > ----------------------------------------- >> >> > web.xml >> >> > ----------------------------------------- >> >> > >> >> > Same above, but filters: >> >> > >> >> > >> >> > >> >> > <!-- Wicket filters --> >> >> > <filter> >> >> > <filter-name>CustomerListPortlet</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>customerListPortletBean</param-value> >> >> > </init-param> >> >> > </filter> >> >> > <filter-mapping> >> >> > <filter-name>CustomerListPortlet</filter-name> >> >> > <url-pattern>/CustomerListPortlet/*</url-pattern> >> >> > <dispatcher>REQUEST</dispatcher> >> >> > <dispatcher>INCLUDE</dispatcher> >> >> > </filter-mapping> >> >> > <!-- END Wicket filters --> >> >> > >> >> > So the application is a bean that gets initialized by Spring. >> >> > >> >> > ----------------------------------------- >> >> > portlet.xml >> >> > ----------------------------------------- >> >> > >> >> > Same but portlet gets: >> >> > >> >> > <portlet> >> >> > <description>Customer viewer</description> >> >> > <portlet-name>crm-customer-list</portlet-name> >> >> > <display-name>Customer details viewer</display-name> >> >> > >> >> > <portlet-class>org.apache.wicket.protocol.http.portlet.WicketPortlet</portlet-class> >> >> > <init-param> >> >> > <name>wicketFilterPath</name> >> >> > <value>/CustomerListPortlet</value> >> >> > </init-param> >> >> > <supports> >> >> > <mime-type>*/*</mime-type> >> >> > <portlet-mode>VIEW</portlet-mode> >> >> > </supports> >> >> > <supported-locale>es</supported-locale> >> >> > <portlet-info> >> >> > <title>Customer viewer</title> >> >> > <short-title>Customer viewer</short-title> >> >> > <keywords>none</keywords> >> >> > </portlet-info> >> >> > </portlet> >> >> > >> >> > Now it's a wicket portlet but I really don't know why it uses the >> >> > correct portlet class as is not defined anyplace... >> >> > >> >> > >> >> > >> >> > ----------------------------------------- >> >> > applicationContext.xml >> >> > ----------------------------------------- >> >> > >> >> > <?xml version="1.0" encoding="UTF-8"?> >> >> > <beans xmlns="http://www.springframework.org/schema/beans" >> >> > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >> >> > xmlns:tx="http://www.springframework.org/schema/tx" >> >> > xmlns:aop="http://www.springframework.org/schema/aop" >> >> > xsi:schemaLocation="http://www.springframework.org/schema/beans >> >> > http://www.springframework.org/schema/beans/spring-beans-2.5.xsd >> >> > http://www.springframework.org/schema/tx >> >> > http://www.springframework.org/schema/tx/spring-tx-2.5.xsd >> >> > http://www.springframework.org/schema/aop >> >> > http://www.springframework.org/schema/aop/spring-aop-2.5.xsd"> >> >> > >> >> > >> >> > <!-- Modules Includes --> >> >> > <import resource="classpath:/conf/spring/hibernate-spring-beans.xml"/> >> >> > <!-- Here comes the connection string and the pool --> >> >> > <import resource="classpath:/conf/spring/transaction-spring-beans.xml"/> >> >> > <!-- Here comes the transaction management stuff --> >> >> > >> >> > <import resource="classpath:/conf/spring/address-dao-spring-beans.xml"/> >> >> > <!-- Here comes the basic data objects for DB management --> >> >> > <import resource="classpath:/conf/spring/contact-dao-spring-beans.xml"/> >> >> > <!-- Here comes the basic data objects for DB management --> >> >> > >> >> > <import resource="classpath:/conf/spring/dao-manager-spring-beans.xml"/> >> >> > <!-- Here comes the manager objects for DB management, they implement >> >> > the MODEL --> >> >> > >> >> > <!-- Portlet Beans --> >> >> > <import resource="portlet-beans.xml"/> >> >> > <!-- Here comes the wicket >> >> > portlet beans --> >> >> > >> >> > </beans> >> >> > >> >> > >> >> > ----------------------------------------- >> >> > portlet-beans.xml >> >> > ----------------------------------------- >> >> > >> >> > <?xml version="1.0" encoding="UTF-8"?> >> >> > <beans xmlns="http://www.springframework.org/schema/beans" >> >> > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >> >> > xmlns:tx="http://www.springframework.org/schema/tx" >> >> > xmlns:aop="http://www.springframework.org/schema/aop" >> >> > xsi:schemaLocation="http://www.springframework.org/schema/beans >> >> > http://www.springframework.org/schema/beans/spring-beans-2.5.xsd >> >> > http://www.springframework.org/schema/tx >> >> > http://www.springframework.org/schema/tx/spring-tx-2.5.xsd >> >> > http://www.springframework.org/schema/aop >> >> > http://www.springframework.org/schema/aop/spring-aop-2.5.xsd"> >> >> > >> >> > <!-- setup wicket application --> >> >> > <bean id="customerListPortletBean" >> >> > class="com.level2crm.portals.crm.wicket.customerlist.CustomerListPortlet"> >> >> > </bean> >> >> > >> >> > >> >> > </beans> >> >> > >> >> > >> >> > >> >> > .---------------------------------------- >> >> > Comments >> >> > ----------------------------------------- >> >> > >> >> > I think this option is darker than the other one. But I think none of >> >> > both are right. So What's the correct way to do it? >> >> > >> >> > >> >> > Thank you! >> > >> > _________________________________________________________________ >> > Get your vacation photos on your phone! >> > http://windowsliveformobile.com/en-us/photos/default.aspx?&OCID=0809TL-HM >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org >> For additional commands, e-mail: users-h...@wicket.apache.org >
--------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org