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

JSF Java Discussion :

Icefaces + Probleme avec acces concurrent sur la même fenetre!


Sujet :

JSF Java

  1. #1
    Membre actif
    Inscrit en
    Juillet 2007
    Messages
    456
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 456
    Points : 231
    Points
    231
    Par défaut Icefaces + Probleme avec acces concurrent sur la même fenetre!
    Salut,
    J'ai un problème d'accès concurrent à mon programme. C'est une application développé en Icefaces, quand je lance mon application toute seule, je teste toutes les structures il y a aucun problème.
    En gros j'ai des structures qui gére l'affichage d'une dataTable. Chaque ligne de la dataTable peut ouvrir une popup ou avoir des childs, qu'on peut développer grâce au +.
    L'utilisateur peut aussi ouvrir la même fenêtre en full screen grâce à un bouton adéquat. C'est là où les problèmes commencent. en effet, de temps en temps qu'on je clique sur un champs de ma dataTable pour ouvrir une popup, j'ai ce genre d'exception
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    javax.faces.FacesException: Problem in renderResponse: /OrderBook.jspx @272,80 rendered="#{orderBook.expandedable}": Error getting property 'expandedable' from bean of type com.ulnet.memberarea.web.OrderBook.OrderBookBean: java.lang.IllegalArgumentException
    le code qui correspond à cette exception est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    	public  boolean getExpandedable()
        {
    		if ( rowDataModel != null 
    				&& rowDataModel.getRowData() instanceof Tblorder) {
    	        Tblorder order = (Tblorder)rowDataModel.getRowData();
    	        if ( order != null)
    	        	return order.isExpanded();
    			}
            return false;
        }
    J'ai essayé de rajoute des synchronized dans toutes les méthodes susceptibles d'accès concurrents mais le problème persiste. A vrai dire je comprend même pas pour quoi il y aurait problème d'accès concurrent, car je me contente de lire des données ...
    Aussi j'ai un autre probléme cette fois avec le dataPaginator, qui marche plus, (dans la fenêtre full screen) .
    Voici le code de ma popup qui me cause le plus de problèmes
    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
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    <ice:panelPopup visible="#{orderBook.visiblePopupTrade}"
    	draggable="true"
    	styleClass="icePnlPop3"
    	modal="false">
     
    	<f:facet name="header">
    		<ice:panelGrid 
    		   style = "text-align : right;"	
                       width = "100%" cellpadding = "0"
                       cellspacing="0" columns = "1" >
                       <ice:commandButton image="img/closePopup.gif"
    				action = "#{orderBook.closeTradePopup}"
    				title = "Close this draggable popup" 
    				immediate = "true" />
                       </ice:panelGrid>
    	</f:facet>
     
    	<f:facet name="body">
    		<ice:panelGroup >
    			<ice:panelGroup style="width:710px">
    				<ice:panelGrid width="200px" 
    					cellpadding="0"
    					cellspacing="0">
     
    					<ice:dataTable value="#{orderBook.rowDataModelTrades}" 
    						var="trade"
    						id="tradeTable" 
    						rows="10" cellpadding="0"
    						styleClass="tradeTable" 
    						>
     
    						<ice:columns 
    							value="#{orderBook.headerNameTrades}"
    							var="column"
    							rendered="true">
    							<f:facet name="header">
    								<ice:outputText style="text-decoration:underline;color:gray; " 
    									value="#{column}" />
    							</f:facet>
    							<ice:panelGroup >
    		                       <ice:outputText value="#{orderBook.cellValueTrades}" />
    		                    </ice:panelGroup>
    						</ice:columns>
    					</ice:dataTable>
    				</ice:panelGrid>
    			</ice:panelGroup>
    			<center>
    				<br/>
    				<ice:dataPaginator  id="tradepaginator" for="tradeTable"
    					binding="#{orderBook.tradePaginator}"
    					paginator="true" fastStep="3" 
    					paginatorMaxPages="4" renderFacetsIfSinglePage="false"
    					styleClass="OLPgr">
    					<f:facet name="first">
    						<ice:graphicImage url="/img/first_btn.jpg"
    							styleClass="OLPgrScrBtn" title="First Page" />
    					</f:facet>
    					<f:facet name="last">
    						<ice:graphicImage url="/img/last_btn.jpg"
    							styleClass="OLPgrScrBtn" title="Last Page" />
    					</f:facet>
    					<f:facet name="previous">
    						<ice:graphicImage
    							url="/img/previous_btn.jpg"
    							styleClass="OLPgrScrBtn" title="Previous Page" />
    					</f:facet>
    					<f:facet name="next">
    						<ice:graphicImage url="/img/next_btn.jpg"
    							styleClass="OLPgrScrBtn" title="Next Page" />
    					</f:facet>
    				</ice:dataPaginator>
    			</center>
    		</ice:panelGroup>	
    	</f:facet>
     
    </ice:panelPopup>
    Ah oui j'ai déja le concurrentDOMViews à true dans mon web.xml

    Si vous avez des remarques n'hésitez à me faire part.
    Merci beaucoup

  2. #2
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut
    Et si au lieu de mettre getExpandedable tu mettais isExpandedable (et encore mieux, isExpandable ) ?
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  3. #3
    Membre actif
    Inscrit en
    Juillet 2007
    Messages
    456
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 456
    Points : 231
    Points
    231
    Par défaut
    Merci pour ta réponse,
    Le truc c'est que le même code marche pour la fenetre normale, mais dés que j'ouvre le full screen ou une autre fenetre avec la meme url, les pb commencent !!
    Je vais essayer le "is" on sait jamais

  4. #4
    Membre actif
    Inscrit en
    Juillet 2007
    Messages
    456
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 456
    Points : 231
    Points
    231
    Par défaut
    J'ai essayé le "is" il n y a pas de problème pour le moment, mais c'est pas sur que ça résout l'exception car ça m'arrive de temps en temps ...
    Sinon pour le deuxième problème du paginator, t'aurais pas une petite idée, celui la m'arrive toujours.
    Il faut que je note ici qu'avant que j'utilise le binding j'avais pas ce problème. Mais j'étais obligé de l'utiliser, car j'ai eu des problèmes de navigation, je devais au faite positionner le paginator sur la première page (apparemment c'est un problème courant pour la navigation dans le paginator).
    Merci

  5. #5
    Membre actif
    Inscrit en
    Juillet 2007
    Messages
    456
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 456
    Points : 231
    Points
    231
    Par défaut
    Re,
    la revoilà l'erreur, cette fois ci avec une autre méthode, que j'ai changé en "is"
    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
    Etat HTTP 500 -
     
    type Rapport d'exception
     
    message
     
    description Le serveur a rencontré une erreur interne () qui l'a empêché de satisfaire la requête.
     
    exception
     
    javax.faces.FacesException: Problem in renderResponse: /OrderBook.jspx @478,90 rendered="#{orderBook.tradesExpandedablePopup}": Error getting property 'tradesExpandedablePopup' from bean of type com.ulnet.memberarea.web.OrderBook.OrderBookBean: java.lang.IllegalArgumentException
    	com.icesoft.faces.facelets.D2DFaceletViewHandler.renderResponse(D2DFaceletViewHandler.java:329)
    	com.icesoft.faces.application.D2DViewHandler.renderView(D2DViewHandler.java:153)
    	com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:107)
    	com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:268)
    	com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:137)
    	com.icesoft.faces.webapp.http.core.PageServer$1.respond(PageServer.java:26)
    	com.icesoft.faces.webapp.http.servlet.ServletRequestResponse.respondWith(ServletRequestResponse.java:147)
    	com.icesoft.faces.webapp.http.servlet.ThreadBlockingAdaptingServlet$ThreadBlockingRequestResponse.respondWith(ThreadBlockingAdaptingServlet.java:36)
    	com.icesoft.faces.webapp.http.core.PageServer.service(PageServer.java:31)
    	com.icesoft.faces.webapp.http.core.MultiViewServer.service(MultiViewServer.java:54)
    	com.icesoft.faces.webapp.http.common.standard.PathDispatcherServer$Matcher.serviceOnMatch(PathDispatcherServer.java:50)
    	com.icesoft.faces.webapp.http.common.standard.PathDispatcherServer.service(PathDispatcherServer.java:19)
    	com.icesoft.faces.webapp.http.servlet.ThreadBlockingAdaptingServlet.service(ThreadBlockingAdaptingServlet.java:19)
    	com.icesoft.faces.webapp.http.servlet.EnvironmentAdaptingServlet.service(EnvironmentAdaptingServlet.java:29)
    	com.icesoft.faces.webapp.http.servlet.MainSessionBoundServlet.service(MainSessionBoundServlet.java:110)
    	com.icesoft.faces.webapp.http.servlet.SessionDispatcher.service(SessionDispatcher.java:35)
    	com.icesoft.faces.webapp.http.servlet.PathDispatcher$Matcher.serviceOnMatch(PathDispatcher.java:52)
    	com.icesoft.faces.webapp.http.servlet.PathDispatcher.service(PathDispatcher.java:29)
    	com.icesoft.faces.webapp.http.servlet.MainServlet.service(MainServlet.java:97)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
     
    note La trace complète de la cause mère de cette erreur est disponible dans les fichiers journaux de Apache Tomcat/5.5.25.
    Apache Tomcat/5.5.25
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public  boolean isTradesExpandedablePopup()
        {
    		if ( rowDataModelForListorderPopup != null 
    				&& rowDataModelForListorderPopup.getRowData() instanceof OrderGroupRecordBean ) {
    			OrderGroupRecordBean order = (OrderGroupRecordBean)rowDataModelForListorderPopup.getRowData();
    			if ( order != null)
    				return order.isContainTradeList();
    			}
    		return false;
        }
    si vous m'expliquez cette erreur ça m'aidera vraiment bq à comprendre ce qui se passe !
    Merci bien.

  6. #6
    Membre actif
    Inscrit en
    Juillet 2007
    Messages
    456
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 456
    Points : 231
    Points
    231
    Par défaut
    enfin apres des jours de recherche, je crois que j'ai trouvé d'ou ca vient.
    Dans le faces-config.xml, il faut que le managed-bean-scope du bean en question soit "request" moi j'avais session.
    C'est de là je crois que le problème venait, apparemment je crée plusieurs sessions pour chaque view et ça mélanger le tous.
    bref pour l'instant ça marche, j'espere que ça va continuer à marcher
    allez bonne chance

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. probleme de characterset avec deux BD sur le même serveur
    Par dllinf dans le forum Administration
    Réponses: 3
    Dernier message: 26/07/2011, 23h52
  2. [AC-2003] Accès concurrent sur un même formulaire
    Par falcon dans le forum IHM
    Réponses: 3
    Dernier message: 22/04/2009, 10h39
  3. Help!! Probleme avec les dates sur SQL SERVER
    Par Nadaa dans le forum MS SQL Server
    Réponses: 16
    Dernier message: 03/08/2006, 16h55
  4. probleme avec les string sur ITA2 64 bits!
    Par vince3320 dans le forum SL & STL
    Réponses: 5
    Dernier message: 22/08/2005, 19h59
  5. Problem avec les *.AVI sur les panels
    Par NaDiA_SoFt dans le forum C++Builder
    Réponses: 3
    Dernier message: 31/08/2003, 22h50

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