Duplicate Id Exception JSF

Status
Nicht offen für weitere Antworten.
A

Arnold1812

Gast
Hi,

ich hab da ein Problem mit der Id meines RichFaces-Elements.
Immer wenn ich den JBoss gestartet habe, kann ich meine Webseite nur einmal aufrufen.
Beim zweiten Aufruf bekomme ich folgenden Stacktrace:

Code:
java.lang.IllegalStateException: duplicate Id for a component warenkorbTabelle:j_id50
	at org.ajax4jsf.application.TreeStructureNode.apply(TreeStructureNode.java:50)
	at org.ajax4jsf.application.TreeStructureNode.apply(TreeStructureNode.java:72)
	at org.ajax4jsf.application.TreeStructureNode.apply(TreeStructureNode.java:72)
	at org.ajax4jsf.application.TreeStructureNode.apply(TreeStructureNode.java:72)
	at org.ajax4jsf.application.TreeStructureNode.apply(TreeStructureNode.java:72)
	at org.ajax4jsf.application.TreeStructureNode.apply(TreeStructureNode.java:72)
	at org.ajax4jsf.application.TreeStructureNode.apply(TreeStructureNode.java:72)
	at org.ajax4jsf.application.AjaxStateManager.getTreeStructureToSave(AjaxStateManager.java:188)
	at org.ajax4jsf.application.AjaxStateManager.buildViewState(AjaxStateManager.java:469)
	at org.ajax4jsf.application.AjaxStateManager.saveSerializedView(AjaxStateManager.java:427)
	at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:615)
	at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
	at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:196)
	at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:109)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
	at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:177)
	at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:267)
	at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:380)
	at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:507)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
	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:230)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
	at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)
	at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
	at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:856)
	at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:566)
	at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1508)
	at java.lang.Thread.run(Thread.java:619)

Es liegt wohl an diesem XHTML-File:

Code:
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:rich="http://richfaces.org/rich">

	
		


			<rich:panelMenu width="95%" iconCollapsedGroup="triangleDown" 
							iconCollapsedTopGroup="triangleDown"
							iconExpandedGroup="triangleUp"
							iconExpandedTopGroup="triangleUp"
							iconItem="disc"
							itemStyle="background: white">
				<rich:panelMenuGroup label="#{i18n['navigation.bestellverwaltung.menutitle']}" expanded="true">
					<rich:panelMenuItem>
						
						<rich:extendedDataTable id="warenkorbTabelle" value="#{bv.warenkorb}" 
									var="warenkorb" binding="#{bv.tabelleWarenkorb}"
									height="150px">
									
							<rich:column width="40px" >
									<f:facet name="header">
										<h:outputText
											value="#{i18n['bestellverwaltung.Warenkorb.nr']}" />
									</f:facet>
								<h:outputText value="#{bv.tabelleWarenkorb.rowIndex+1}"/>
							</rich:column>
							
						</rich:extendedDataTable>
						<h:commandButton action="#{bv.init}" value="Aktualisieren"/>
						
					</rich:panelMenuItem>
				</rich:panelMenuGroup>									
			</rich:panelMenu>
		</p>
</ui:composition>

Ich würde euch gern noch mehr Code posten, weiß aber leider nicht was ihr braucht, das Projekt ist nämlich relativ umfangreich und ich kann nicht alles posten :(

Danke schonmal!
 

gex

Bekanntes Mitglied
Ich gehe davon aus, dass dein Bean 'bv' session-scoped ist?
Dann könnte es in diese Richtung gehen (Problematik übrigens bei vielen JSF-Libraries mit component-bindings)

https://jira.jboss.org/jira/browse/RF-2218

Versuch mal dieses Property im web.xml zu setzen:
Code:
<context-param>
    <param-name>org.ajax4jsf.SERIALIZE_SERVER_STATE</param-name>
    <param-value>true</param-value>
</context-param>
 
A

Arnold1812

Gast
Hallo gex,

danke für Deine Hilfe!
Aufgrund des Termindrucks habe ich nun von einer Vorschau direkt auf dem Index der Webseite abgesehen und arbeite jetzt mit einer externen XHTML-Seite.
Dort funktioniert alles ohne Probleme.

Sollte ich dem Problem noch auf die Spur kommen werde ich die Lösung hier posten.

Viele Grüße,
Arnold
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben