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

Reply via email to