IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Spring Java Discussion :

Spring MVC 3 (Portlet): Hibernate Lazy loading et implémentation OpenSessionInView


Sujet :

Spring Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 34
    Points : 17
    Points
    17
    Par défaut Spring MVC 3 (Portlet): Hibernate Lazy loading et implémentation OpenSessionInView
    Bonjour,

    Je travaille sur un projet de portlet avec Spring MVC 3 et Hibernate, et je suis confronté à un probleme que je ne parviens pas à résoudre.

    J'ai des tables reliées entre elles via de multiples associations ManyToOne et OneToMany.

    Mon probleme est que je souhaite accéder à des champs des objets représentant ces tables via lazy loading dans la vue de mon portlet. Jusque la, pour éviter la fameuse LazyInitializationException, je force le chargement de mes objets a base de requetes supplémentaires (du eager loading barbarre quoi ....) C'est pas beau, je sais.

    Pour éviter cela, je pense qu'il faut que j'étende la durée de vie de ma session Hibernate à toute la durée de traitement de ma requete, pour pouvoir conserver l'avantage du lazy loading dans la vue

    C'est la que ca coince. Je n'arrive pas à mettre en place le pattern OSIV (OpenSessionInView) dont tout le monde parle sur le net, et j'ai besoin d'un coup de main à ce niveau la.

    Je vous poste quelques segments de code ou j'ai peut etre fait n'importe quoi:

    web.xml
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:jsp="http://java.sun.com/xml/ns/javaee/jsp" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
      <display-name>monportlet-portlet</display-name>
      <jsp-config>
        <taglib>
          <taglib-uri>http://java.sun.com/portlet_2_0</taglib-uri>
          <taglib-location>/WEB-INF/tld/liferay-portlet.tld</taglib-location>
        </taglib>
      </jsp-config>
     
      <servlet>
        <servlet-name>ViewRendererServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.ViewRendererServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
      </servlet>
      <servlet-mapping>
        <servlet-name>ViewRendererServlet</servlet-name>
        <url-pattern>/WEB-INF/servlet/view</url-pattern>
      </servlet-mapping>
    </web-app>

    monportlet-portlet.xml
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    <!-- Activer la configuration des beans par annotations -->
        <context:annotation-config />
        <context:component-scan base-package = "monpackage"/>
     
    	<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    		<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
    		<property name="prefix" value="/view/jsp/" />
    		<property name="suffix" value=".jsp" />
    	</bean>
     
    	<bean class="org.springframework.web.portlet.mvc.annotation.AnnotationMethodHandlerAdapter"></bean>
     
     
    	<!-- OPEN SESSION IN VIEW  -->
    	<bean name="openSessionInViewInterceptor" class="org.springframework.orm.hibernate3.support.OpenSessionInViewInterceptor">
    		<property name="sessionFactory" ref="mySessionFactory"/>
    	</bean>
     
    	<bean class="org.springframework.web.portlet.mvc.annotation.DefaultAnnotationHandlerMapping">
    		<property name="interceptors">
    	       <!-- <list>-->
    	           <ref bean="openSessionInViewInterceptor"/>
    	       <!-- </list> -->
    	   </property>	   
       </bean>
     
     
    	<!-- HIBERNATE CONFIGURATION -->		
     
    	<bean id="myDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">  
            <property name="driverClassName" value="com.mysql.jdbc.Driver" />  
            <property name="url" value="jdbc:mysql://localhost/mon_portlet?useUnicode=true" />  
            <property name="username" value="root" />  
            <property name="password" value="" />  
        </bean> 
     
        <bean id="mySessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">  
            <property name="dataSource" ref="myDataSource" />
            <property name="packagesToScan" value="monpackage"/>
            <property name="hibernateProperties">
                <props>
                    <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
                    <prop key="hibernate.hbm2ddl.auto">create-drop</prop>
                    <prop key="javax.persistence.validation.mode">NONE</prop>
                </props>
            </property>
        </bean>
     
    	<bean id="txManager" class = "org.springframework.orm.hibernate3.HibernateTransactionManager">
    		<property name="dataSource" ref="myDataSource" />
    		<property name = "sessionFactory" ref = "mySessionFactory" />
    	</bean>
    	<tx:annotation-driven transaction-manager="txManager"/>
     
    	<bean id="myContentDAO" class="monpackage.dao.hibernate.ContentDAOHibernateImpl" />
     
    	<bean id="myGroupDAO" class="monpackage.dao.hibernate.GroupDAOHibernateImpl" />
     
    	<bean id="myPublicationDAO" class="monpackage.dao.hibernate.PublicationDAOHibernateImpl" />

    Mes classes de modele:

    Content.java
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    @Entity(name="MyContent")
    @Table(name="content_tbl")
    @Inheritance(strategy=InheritanceType.JOINED)
    public class Content implements Serializable
    {
    	@Id
    	@GeneratedValue(strategy=GenerationType.AUTO)
    	@Column(name="id")
    	private Long id;
     
    	@Column(name="description", nullable=false)
    	private String description;
     
    	@ManyToOne
    	private Publication publication;
     
    	public Content()
           {
    	    super();
    	}
     
        public Content(Publication publication, String description)
        {
    		this();
    	    this.setPublication(publication);
    	    this.setDescription(description);
        }
     
     
               .... getters/setters ...
    }
    Group.java
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    @Entity(name="MyGroup")
    @Table(name="group_tbl")
    public class Group implements Serializable
    {
    	@Id
    	@Column(name="id")
    	@GeneratedValue(strategy=GenerationType.AUTO)
    	private Long id;
     
    	@Column(name="authorId", nullable=false)
    	private Long authorId;
     
    	@Column(name="name", nullable=false)
    	private String name;
     
    	@Column(name="description", nullable=false)
    	private String description;
     
    	@Column(name="isActive", nullable=false)
    	private boolean isActive;
     
    	@OneToMany
    	@JoinTable(name = "group_publication")
    	private Collection<Publication> publications = new ArrayList<Publication>();
     
    	public Group()
        {
    	    super();
        }
     
        public Group(Long author_id, String name, String description, boolean is_active)
        {
    	    this();
    	    this.setAuthorId(author_id);
    	    this.setName(name);
    	    this.setDescription(description);
    	    this.setActive(is_active);
        }
     
     
               .... getters/setters ...
     
    }
    Publication.java
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    @Entity(name="MyPublication")
    @Table(name="publication_tbl")
    public class Publication implements Serializable
    {
    	@Id
    	@GeneratedValue(strategy=GenerationType.AUTO)
    	@Column(name="id")
    	private Long id;
     
    	@Column(name="authorId")
    	private Long authorId;
     
        @ManyToOne
        private Group group;
     
    	@Column(name="publicationDatetime", nullable=false)
    	private Date publicationDatetime;
     
    	@Column(name="isActive", nullable=false)
    	private boolean isActive;
     
    	@OneToMany
    	@JoinTable(name = "publication_content")
    	private Collection<Content> contents = new ArrayList<Content>();
     
     
    	@OneToMany
    	@JoinTable(name = "publication_answer")
    	private Collection<Publication> answers = new ArrayList<Publication>();
     
    	@ManyToOne
    	private Publication parentPublication = null;
     
    	@Transient // pour que hibernate ignore le champ
    	private User author = null;
     
    	public Publication()
        {
    	    super();
        }
     
        public Publication(Long author_id, Group group, Date publication_datetime, boolean is_active)
        {
    	    this();
    	    this.setAuthorId(author_id);
    	    this.setGroup(group);
    	    this.setPublicationDatetime(publication_datetime);
    	    this.setActive(is_active);
        }
     
     
               .... getters/setters ...
     
    }
    Merci d'avance de votre aide.

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 34
    Points : 17
    Points
    17
    Par défaut
    Je précise que je fais bel et bien des recherches pour résoudre mon problème, sans pour autant y arriver.

    D'apres ce que j'ai compri, OSIV ne peut être mis en place dans les portlets de la meme facon qu'il l'est dans les servlets à cause du découpage du traitement des requetes dans un portlet (action/render).

    any suggestions ?

  3. #3
    Membre actif Avatar de Jacobian
    Inscrit en
    Février 2008
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 425
    Points : 245
    Points
    245
    Par défaut
    dans ton fichier web.xml ajouter ça:

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <filter>
    <filter-name>hibernateFilter</filter-name>
    <filter-class>
    org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
    </filter-class>
    </filter>
     
    <filter-mapping>
    <filter-name>hibernateFilter</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
    <dispatcher>ERROR</dispatcher>
    </filter-mapping>

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 34
    Points : 17
    Points
    17
    Par défaut
    Salut,

    Merci de ta réponse,

    J'avais déjà essayé de mettre un filtre, ca a effectivement changé une partie du probleme, mais pas tout. Je m'explique:

    J'ai moins d'exceptions LazyInitializationException (j'en ai toujours cependant), mais la jsp ne parvient pas à trouver les données. Par exemple, j'arrive à afficher les informations sur un Group récupéré en BD, mais pas celles des Content de chaque Publication de ce Group (Group -> List<Publication> -> List<Content>), c'est comme si la jsp recevait des valeurs vides.

    un autre probleme est que lorsque, dans ma couche service, je fais par exemple: group.getPublications().add(publication); je me retrouve avec une LazyInitializationException, dont voici la trace:

    Code de la fonction ou se trouve la ligne (classe PublicationService):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public void addPublication(Publication publication)
    	{
    		this.dao.addPublication(publication);
    		Group group = myGroupService.getGroup(publication.getGroup().getId());
    		group.getPublications().add(publication);
    		myGroupService.updateGroup(group);
    	}
    trace de l'exception:
    16:03:34,216 ERROR [jsp:154] org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: org.crim.deti.portlet.liferay.intracom.domain.Group.publications, no session or session was closed
    	at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:380)
    	at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationExceptionIfNotConnected(AbstractPersistentCollection.java:372)
    	at org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:365)
    	at org.hibernate.collection.AbstractPersistentCollection.write(AbstractPersistentCollection.java:205)
    	at org.hibernate.collection.PersistentBag.add(PersistentBag.java:297)
    	at org.crim.deti.portlet.liferay.intracom.services.PublicationService.addPublication(PublicationService.java:103)
    	at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:191)
    	at org.crim.deti.portlet.liferay.intracom.controllers.GroupPublicationController.addMessageToGroup(GroupPublicationController.java:105)
    	at com.liferay.portlet.FilterChainImpl.doFilter(FilterChainImpl.java:70)
    	at com.liferay.portal.kernel.portlet.PortletFilterUtil.doFilter(PortletFilterUtil.java:48)
    	at com.liferay.portal.kernel.servlet.PortletServlet.service(PortletServlet.java:92)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
    	at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:551)
    	at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:488)
    	at com.liferay.portlet.InvokerPortletImpl.invoke(InvokerPortletImpl.java:638)
    	at com.liferay.portlet.InvokerPortletImpl.invokeAction(InvokerPortletImpl.java:687)
    	at com.liferay.portlet.InvokerPortletImpl.processAction(InvokerPortletImpl.java:360)
    merci d'avance de ta réponse

  5. #5
    Membre actif Avatar de Jacobian
    Inscrit en
    Février 2008
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 425
    Points : 245
    Points
    245
    Par défaut
    annoter la méthode addPublication @Transactional

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 34
    Points : 17
    Points
    17
    Par défaut
    Citation Envoyé par Jacobian Voir le message
    annoter la méthode addPublication @Transactional
    Mes services sont déjà annotés en @Transactional au niveau de la classe

  7. #7
    Membre actif Avatar de Jacobian
    Inscrit en
    Février 2008
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 425
    Points : 245
    Points
    245
    Par défaut
    si ta met le filter dans web.xml et tu a annoté la méthode ça devrais marcher parce que l'annotation laisse la session ouverte si ta une autre exception met le ici

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 34
    Points : 17
    Points
    17
    Par défaut
    Voici l'exception que ca me donne (j'ai mi le XML que tu m'as donné dans web.xml, et mes services sont marqués Transactionnal):

    ERROR [LazyInitializationException:42] failed to lazily initialize a collection of role: monpackage.domain.Group.publications, no session or session was closed
    org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: monpackage.domain.Group.publications, no session or session was closed
    	at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:380)
    	at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationExceptionIfNotConnected(AbstractPersistentCollection.java:372)
    	at org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:365)
    	at org.hibernate.collection.AbstractPersistentCollection.write(AbstractPersistentCollection.java:205)
    	at org.hibernate.collection.PersistentBag.add(PersistentBag.java:297)
    	at monpackage.services.PublicationService.addPublication(PublicationService.java:109)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    	at java.lang.reflect.Method.invoke(Method.java:597)
    	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
    	at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
    	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
    	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
    	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
    	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
    	at $Proxy2222.addPublication(Unknown Source)
    	at monpackage.controllers.DefaultController.putDevData(DefaultController.java:150)
    	at monpackage.controllers.DefaultController.handleRenderRequest(DefaultController.java:89)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    	at java.lang.reflect.Method.invoke(Method.java:597)
    	at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176)
    	at org.springframework.web.portlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:358)
    	at org.springframework.web.portlet.mvc.annotation.AnnotationMethodHandlerAdapter.doHandle(AnnotationMethodHandlerAdapter.java:345)
    	at org.springframework.web.portlet.mvc.annotation.AnnotationMethodHandlerAdapter.handleRender(AnnotationMethodHandlerAdapter.java:288)
    	at org.springframework.web.portlet.DispatcherPortlet.doRenderService(DispatcherPortlet.java:734)
    	at org.springframework.web.portlet.FrameworkPortlet.processRequest(FrameworkPortlet.java:522)
    	at org.springframework.web.portlet.FrameworkPortlet.doDispatch(FrameworkPortlet.java:470)
    	at javax.portlet.GenericPortlet.render(GenericPortlet.java:233)
    	at com.liferay.portlet.FilterChainImpl.doFilter(FilterChainImpl.java:101)
    	at com.liferay.portal.kernel.portlet.PortletFilterUtil.doFilter(PortletFilterUtil.java:64)
    	at com.liferay.portal.kernel.servlet.PortletServlet.service(PortletServlet.java:92)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
    	at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:551)
    	at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:488)
    	at com.liferay.portlet.InvokerPortletImpl.invoke(InvokerPortletImpl.java:638)
    	at com.liferay.portlet.InvokerPortletImpl.invokeRender(InvokerPortletImpl.java:723)
    	at com.liferay.portlet.InvokerPortletImpl.render(InvokerPortletImpl.java:425)
    	at org.apache.jsp.html.portal.render_005fportlet_jsp._jspService(Unknown Source)
    	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
    	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
    	at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:551)
    	at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:488)
    	at com.liferay.portal.util.PortalImpl.renderPortlet(PortalImpl.java:3740)
    	at com.liferay.portal.util.PortalUtil.renderPortlet(PortalUtil.java:1180)
    	at com.liferay.portlet.layoutconfiguration.util.RuntimePortletUtil.processPortlet(RuntimePortletUtil.java:160)
    	at com.liferay.portlet.layoutconfiguration.util.RuntimePortletUtil.processPortlet(RuntimePortletUtil.java:94)
    	at com.liferay.portlet.layoutconfiguration.util.RuntimePortletUtil.processTemplate(RuntimePortletUtil.java:256)
    	at com.liferay.portlet.layoutconfiguration.util.RuntimePortletUtil.processTemplate(RuntimePortletUtil.java:181)
    	at org.apache.jsp.html.portal.layout.view.portlet_jsp._jspService(Unknown Source)
    	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
    	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
    	at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:551)
    	at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:488)
    	at com.liferay.portal.action.LayoutAction.includeLayoutContent(LayoutAction.java:370)
    	at com.liferay.portal.action.LayoutAction.processLayout(LayoutAction.java:629)
    	at com.liferay.portal.action.LayoutAction.execute(LayoutAction.java:232)
    	at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
    	at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
    	at com.liferay.portal.struts.PortalRequestProcessor.process(PortalRequestProcessor.java:153)
    	at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
    	at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    	at com.liferay.portal.servlet.MainServlet.callParentService(MainServlet.java:508)
    	at com.liferay.portal.servlet.MainServlet.service(MainServlet.java:485)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
    	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:126)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
    	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:126)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
    	at com.liferay.portal.servlet.filters.strip.StripFilter.processFilter(StripFilter.java:309)
    	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:123)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
    	at com.liferay.portal.servlet.filters.themepreview.ThemePreviewFilter.processFilter(ThemePreviewFilter.java:88)
    	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:123)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
    	at com.liferay.portal.servlet.filters.gzip.GZipFilter.processFilter(GZipFilter.java:121)
    	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:123)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
    	at com.liferay.portal.servlet.filters.secure.SecureFilter.processFilter(SecureFilter.java:182)
    	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:123)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
    	at com.liferay.portal.servlet.filters.autologin.AutoLoginFilter.processFilter(AutoLoginFilter.java:254)
    	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:123)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
    	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
    	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
    	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
    	at com.liferay.portal.servlet.FriendlyURLServlet.service(FriendlyURLServlet.java:134)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
    	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:126)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
    	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:126)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
    	at com.liferay.portal.servlet.filters.strip.StripFilter.processFilter(StripFilter.java:261)
    	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:123)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
    	at com.liferay.portal.servlet.filters.themepreview.ThemePreviewFilter.processFilter(ThemePreviewFilter.java:88)
    	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:123)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
    	at com.liferay.portal.servlet.filters.gzip.GZipFilter.processFilter(GZipFilter.java:110)
    	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:123)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
    	at com.liferay.portal.servlet.filters.secure.SecureFilter.processFilter(SecureFilter.java:182)
    	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:123)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
    	at com.liferay.portal.servlet.filters.i18n.I18nFilter.processFilter(I18nFilter.java:212)
    	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:123)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
    	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:126)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
    	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:126)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
    	at com.liferay.portal.servlet.filters.etag.ETagFilter.processFilter(ETagFilter.java:45)
    	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:123)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
    	at com.liferay.portal.servlet.filters.autologin.AutoLoginFilter.processFilter(AutoLoginFilter.java:254)
    	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:123)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
    	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
    	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
    	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
    	at com.liferay.portal.servlet.I18nServlet.service(I18nServlet.java:102)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
    	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
    	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
    	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
    	at com.liferay.portal.servlet.filters.virtualhost.VirtualHostFilter.processFilter(VirtualHostFilter.java:311)
    	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:123)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
    	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:126)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
    	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:126)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:738)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
    	at com.liferay.portal.servlet.filters.threadlocal.ThreadLocalFilter.processFilter(ThreadLocalFilter.java:35)
    	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:123)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:470)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
    	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
    	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
    	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    	at java.lang.Thread.run(Thread.java:619)

    La ligne qui semble etre concernée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public void addPublication(Publication publication)
    	{
    		this.dao.addPublication(publication);
    		Group group = publication.getGroup();
    		group.getPublications().add(publication);
    		myGroupService.updateGroup(group);
    	}

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 34
    Points : 17
    Points
    17
    Par défaut
    Salut à tous et bonne année.

    Je ne suis plus sur ce projet, mais par curiosité, si quelqu'un à une réponse fonctionnelle, merci de la partager. malgré mes recherches je n'ai toujours rien trouvé

    Merci

Discussions similaires

  1. hibernate, lazy loading et mémoire
    Par Graurk dans le forum Hibernate
    Réponses: 3
    Dernier message: 03/11/2010, 17h49
  2. [Data] encore une question lazy loading spring hibernate
    Par Fred_Bogota dans le forum Spring
    Réponses: 3
    Dernier message: 24/10/2009, 15h31
  3. Réponses: 13
    Dernier message: 13/03/2009, 09h38
  4. Spring hibernate lazy loading
    Par mauroyb0 dans le forum Hibernate
    Réponses: 6
    Dernier message: 09/05/2007, 12h14
  5. [HIBERNATE 3]Lazy loading
    Par SEMPERE Benjamin dans le forum Hibernate
    Réponses: 11
    Dernier message: 08/02/2006, 22h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo