[JBossCache] - Queue structure
by aditsu
Hi, is it possible to implement a FIFO queue in the cache, so that multiple threads (or apps) can add and remove elements in order, without conflicting?
As I understand it, each node has a (Concurrent)HashMap of child nodes and a HashMap of data. HashMap is not particularly known for keeping the order of the entries, so there doesn't seem to be a way to, for example, get the "first" element.
Is there any feasible way to implement this kind of structure over the cache, without locking and writing excessively? I thought maybe I can keep a counter (also in the cache), and increment it for every element, then use the counter as a key in a HashMap (probably for child node names), then later use a for loop to get the elements in order, but it feels like reading and incrementing the counter could be troublesome.
Adrian
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4104479#4104479
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4104479
18 years, 8 months
[JBoss Seam] - Re: Online Seam DVD Store example broken?
by koenhandekyn
at nov 14 2007 :
from http://dvdstore.demo.jboss.com/browse.seam
An Error Occurred:
| javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: Cannot open connection
| +- Stack Trace
|
| javax.ejb.EJBTransactionRolledbackException: javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: Cannot open connection
| at org.jboss.ejb3.tx.Ejb3TxPolicy.handleInCallerTx(Ejb3TxPolicy.java:93)
| at org.jboss.aspects.tx.TxPolicy.invokeInCallerTx(TxPolicy.java:130)
| at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:201)
| at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
| at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76)
| at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
| at org.jboss.ejb3.stateful.StatefulInstanceInterceptor.invoke(StatefulInstanceInterceptor.java:81)
| at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
| at org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:78)
| at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
| at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:47)
| at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
| at org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106)
| at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
| at org.jboss.ejb3.stateful.StatefulContainer.localInvoke(StatefulContainer.java:188)
| at org.jboss.ejb3.stateful.StatefulLocalProxy.invoke(StatefulLocalProxy.java:98)
| at $Proxy244.doSearch(Unknown Source)
| 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:585)
| at org.jboss.seam.util.Reflections.invoke(Reflections.java:13)
| at org.jboss.seam.util.Reflections.invokeAndWrap(Reflections.java:32)
| at org.jboss.seam.Component.callComponentMethod(Component.java:1283)
| at org.jboss.seam.Component.getInstanceFromFactory(Component.java:1242)
| at org.jboss.seam.Component.getInstance(Component.java:1209)
| at org.jboss.seam.Component.getInstance(Component.java:1195)
| at org.jboss.seam.jsf.SeamVariableResolver.resolveVariable(SeamVariableResolver.java:44)
| at com.sun.facelets.el.LegacyELContext$LegacyELResolver.getValue(LegacyELContext.java:134)
| at com.sun.el.parser.AstIdentifier.getValue(AstIdentifier.java:65)
| at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:192)
| at com.sun.facelets.el.TagValueExpression.getValue(TagValueExpression.java:71)
| at com.sun.facelets.el.LegacyValueBinding.getValue(LegacyValueBinding.java:56)
| at com.sun.facelets.component.UIRepeat.getValue(UIRepeat.java:143)
| at com.sun.facelets.component.UIRepeat.getDataModel(UIRepeat.java:121)
| at com.sun.facelets.component.UIRepeat.setIndex(UIRepeat.java:305)
| at com.sun.facelets.component.UIRepeat.process(UIRepeat.java:333)
| at com.sun.facelets.component.UIRepeat.encodeChildren(UIRepeat.java:617)
| at com.sun.facelets.tag.jsf.ComponentSupport.encodeRecursive(ComponentSupport.java:234)
| at com.sun.facelets.tag.jsf.ComponentSupport.encodeRecursive(ComponentSupport.java:239)
| at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:554)
| at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:352)
| at javax.faces.webapp.FacesServlet.service(FacesServlet.java:107)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
| at org.jboss.seam.servlet.SeamRedirectFilter.doFilter(SeamRedirectFilter.java:30)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
| at org.jboss.seam.servlet.SeamExceptionFilter.doFilter(SeamExceptionFilter.java:45)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
| at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
| at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
| at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
| at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
| at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
| at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
| at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
| at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:541)
| at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
| at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
| at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
| at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
| at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
| at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
| at java.lang.Thread.run(Thread.java:595)
| Caused by: javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: Cannot open connection
| at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:567)
| at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:56)
| at com.jboss.dvd.seam.BestSellersBean.doSearch(BestSellersBean.java:49)
| at sun.reflect.GeneratedMethodAccessor882.invoke(Unknown Source)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| at java.lang.reflect.Method.invoke(Method.java:585)
| at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:112)
| at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:166)
| at org.jboss.seam.interceptors.SeamInvocationContext.proceed(SeamInvocationContext.java:56)
| at org.jboss.seam.interceptors.ValidationInterceptor.validateTargetComponent(ValidationInterceptor.java:64)
| at sun.reflect.GeneratedMethodAccessor133.invoke(Unknown Source)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| at java.lang.reflect.Method.invoke(Method.java:585)
| at org.jboss.seam.util.Reflections.invoke(Reflections.java:13)
| at org.jboss.seam.interceptors.Interceptor.aroundInvoke(Interceptor.java:87)
| at org.jboss.seam.interceptors.SeamInvocationContext.proceed(SeamInvocationContext.java:60)
| at org.jboss.seam.interceptors.OutcomeInterceptor.interceptOutcome(OutcomeInterceptor.java:21)
| at sun.reflect.GeneratedMethodAccessor132.invoke(Unknown Source)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| at java.lang.reflect.Method.invoke(Method.java:585)
| at org.jboss.seam.util.Reflections.invoke(Reflections.java:13)
| at org.jboss.seam.interceptors.Interceptor.aroundInvoke(Interceptor.java:87)
| at org.jboss.seam.interceptors.SeamInvocationContext.proceed(SeamInvocationContext.java:60)
| at org.jboss.seam.interceptors.RollbackInterceptor.rollbackIfNecessary(RollbackInterceptor.java:30)
| at sun.reflect.GeneratedMethodAccessor131.invoke(Unknown Source)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| at java.lang.reflect.Method.invoke(Method.java:585)
| at org.jboss.seam.util.Reflections.invoke(Reflections.java:13)
| at org.jboss.seam.interceptors.Interceptor.aroundInvoke(Interceptor.java:87)
| at org.jboss.seam.interceptors.SeamInvocationContext.proceed(SeamInvocationContext.java:60)
| at org.jboss.seam.interceptors.BijectionInterceptor.bijectTargetComponent(BijectionInterceptor.java:33)
| at sun.reflect.GeneratedMethodAccessor130.invoke(Unknown Source)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| at java.lang.reflect.Method.invoke(Method.java:585)
| at org.jboss.seam.util.Reflections.invoke(Reflections.java:13)
| at org.jboss.seam.interceptors.Interceptor.aroundInvoke(Interceptor.java:87)
| at org.jboss.seam.interceptors.SeamInvocationContext.proceed(SeamInvocationContext.java:60)
| at org.jboss.seam.interceptors.ConversationInterceptor.endOrBeginLongRunningConversation(ConversationInterceptor.java:68)
| at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| at java.lang.reflect.Method.invoke(Method.java:585)
| at org.jboss.seam.util.Reflections.invoke(Reflections.java:13)
| at org.jboss.seam.interceptors.Interceptor.aroundInvoke(Interceptor.java:87)
| at org.jboss.seam.interceptors.SeamInvocationContext.proceed(SeamInvocationContext.java:60)
| at org.jboss.seam.interceptors.BusinessProcessInterceptor.manageBusinessProcessContext(BusinessProcessInterceptor.java:60)
| at sun.reflect.GeneratedMethodAccessor128.invoke(Unknown Source)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| at java.lang.reflect.Method.invoke(Method.java:585)
| at org.jboss.seam.util.Reflections.invoke(Reflections.java:13)
| at org.jboss.seam.interceptors.Interceptor.aroundInvoke(Interceptor.java:87)
| at org.jboss.seam.interceptors.SeamInvocationContext.proceed(SeamInvocationContext.java:60)
| at org.jboss.seam.interceptors.RemoveInterceptor.removeIfNecessary(RemoveInterceptor.java:39)
| at sun.reflect.GeneratedMethodAccessor127.invoke(Unknown Source)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| at java.lang.reflect.Method.invoke(Method.java:585)
| at org.jboss.seam.util.Reflections.invoke(Reflections.java:13)
| at org.jboss.seam.interceptors.Interceptor.aroundInvoke(Interceptor.java:87)
| at org.jboss.seam.interceptors.SeamInvocationContext.proceed(SeamInvocationContext.java:60)
| at org.jboss.seam.ejb.SeamInterceptor.aroundInvokeInContexts(SeamInterceptor.java:73)
| at org.jboss.seam.ejb.SeamInterceptor.aroundInvoke(SeamInterceptor.java:45)
| at sun.reflect.GeneratedMethodAccessor136.invoke(Unknown Source)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
| at java.lang.reflect.Method.invoke(Method.java:585)
| at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:118)
| at org.jboss.ejb3.interceptor.EJB3InterceptorsInterceptor.invoke(EJB3InterceptorsInterceptor.java:63)
| at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
| at org.jboss.ejb3.entity.ExtendedPersistenceContextPropagationInterceptor.invoke(ExtendedPersistenceContextPropagationInterceptor.java:57)
| at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
| at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:54)
| at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
| at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:47)
| at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
| at org.jboss.aspects.tx.TxPolicy.invokeInCallerTx(TxPolicy.java:126)
| ... 66 more
| Caused by: org.hibernate.exception.GenericJDBCException: Cannot open connection
| at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
| at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)
| at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
| at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:29)
| at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:420)
| at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:144)
| at org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:139)
| at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1561)
| at org.hibernate.loader.Loader.doQuery(Loader.java:661)
| at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)
| at org.hibernate.loader.Loader.doList(Loader.java:2145)
| at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2029)
| at org.hibernate.loader.Loader.list(Loader.java:2024)
| at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:392)
| at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:333)
| at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:172)
| at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1114)
| at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
| at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:53)
| ... 137 more
| Caused by: org.jboss.util.NestedSQLException: Transaction is not active: tx=TransactionImpl:XidImpl[FormatId=257, GlobalId=host02.dmz.inap.atl.jboss.com/63824, BranchQual=, localId=63824]; - nested throwable: (javax.resource.ResourceException: Transaction is not active: tx=TransactionImpl:XidImpl[FormatId=257, GlobalId=host02.dmz.inap.atl.jboss.com/63824, BranchQual=, localId=63824])
| at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:94)
| at org.hibernate.connection.DatasourceConnectionProvider.getConnection(DatasourceConnectionProvider.java:69)
| at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:417)
| ... 151 more
| Caused by: javax.resource.ResourceException: Transaction is not active: tx=TransactionImpl:XidImpl[FormatId=257, GlobalId=host02.dmz.inap.atl.jboss.com/63824, BranchQual=, localId=63824]
| at org.jboss.resource.connectionmanager.TxConnectionManager.getManagedConnection(TxConnectionManager.java:290)
| at org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:379)
| at org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConnection(BaseConnectionManager2.java:812)
| at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:88)
| ... 153 more
|
| +- Component Tree
|
| <UIViewRoot locale="en" renderKitId="HTML_BASIC" rendered="true" transient="false" viewId="/browse.xhtml">
|
| <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
|
| <html xmlns="http://www.w3.org/1999/xhtml"> <head>
|
| <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/> <title>JBoss DVD Store</title> <link href="screen.css" rel="stylesheet" type="text/css"/> </head> <body id="pgMainMenu"> <div id="document"> <div id="header"><span>JBoss Seam DVD Store</span></div> <div id="nav">
|
| <div xmlns="http://www.w3.org/1999/xhtml"> <ul> <li id="page_home"><a href="home.seam">Home</a></li> <li id="page_shop"><a href="browse.seam">Shop</a></li>
|
| <UINamingContainer id="_id4" rendered="false" transient="false">
|
| <li id="page_orders"><a href="showorders.seam">My Orders</a></li>
|
| </UINamingContainer>
|
| <li id="page_cart"><a href="checkout.seam">Cart</a></li> </ul> <script language="JavaScript"> function setClass(id, className) { obj = document.getElementById(id); if (obj != null) { obj.className = className; } } setClass("page_" + "#{page}", "current"); </script> </div>
|
| </div> <div id="container"> <div id="sidebar">
|
| <div class="menu">
|
| <HtmlForm enctype="application/x-www-form-urlencoded" id="_id9" rendered="true" submitted="false" transient="false">
|
| <dl> <dt class="menuHeader">#{msgs.loginPagePrompt}</dt> <dd class="menuForm"> <dl> <dt>
|
| <HtmlOutputText escape="true" id="_id11" rendered="true" transient="false" value="Username"/>
|
| </dt> <dd>
|
| <HtmlInputText disabled="false" id="_id13" immediate="false" localValueSet="false" maxlength="-2147483648" readonly="false" rendered="true" required="false" size="16" transient="false" valid="true" value="user1"/>
|
| </dd> <dt>
|
| <HtmlOutputText escape="true" id="_id15" rendered="true" transient="false" value="Password"/>
|
| </dt> <dd>
|
| <HtmlInputSecret disabled="false" id="_id17" immediate="false" localValueSet="false" maxlength="-2147483648" readonly="false" redisplay="false" rendered="true" required="false" size="16" transient="false" valid="true" value="password"/>
|
| </dd> <dd>
|
| <HtmlCommandButton action="#{login.login}" disabled="false" id="_id19" immediate="false" readonly="false" rendered="true" style="width: 166px;" styleClass="formButton" transient="false" type="submit" value="Login"/>
|
| </dd> </dl> </dd> </dl> <dl> <dt class="menuFooter">
|
| <HtmlCommandLink action="#{editCustomer.startEdit}" id="_id21" immediate="false" rendered="true" transient="false">
|
| Create Account
|
| </HtmlCommandLink>
|
| </dt> </dl>
|
| </HtmlForm>
|
| </div>
|
| <div class="menu" xmlns="http://www.w3.org/1999/xhtml"> <dl> <dt class="menuHeader">#{msgs.browseSearchHeader}</dt> <dd class="menuForm">
|
| <HtmlForm enctype="application/x-www-form-urlencoded" id="_id26" rendered="true" submitted="false" transient="false">
|
| <dl> <dt>
|
| <HtmlOutputText escape="true" id="_id28" rendered="true" transient="false" value="Title:"/>
|
| </dt> <dd>
|
| <HtmlInputText disabled="false" id="_id30" immediate="false" localValueSet="false" maxlength="-2147483648" readonly="false" rendered="true" required="false" size="15" transient="false" valid="true"/>
|
| </dd> <dt>
|
| <HtmlOutputText escape="true" id="_id32" rendered="true" transient="false" value="Actor:"/>
|
| </dt> <dd>
|
| <HtmlInputText disabled="false" id="_id34" immediate="false" localValueSet="false" maxlength="-2147483648" readonly="false" rendered="true" required="false" size="15" transient="false" valid="true"/>
|
| </dd> <dt>
|
| <HtmlOutputText escape="true" id="_id36" rendered="true" transient="false" value="Category:"/>
|
| </dt> <dd>
|
| <HtmlSelectOneMenu converter="com.jboss.dvd.seam.CategoriesBean$CategoryConverter@178c1ef" disabled="false" id="_id38" immediate="false" localValueSet="false" readonly="false" rendered="true" required="false" transient="false" valid="true">
|
| <UISelectItem id="_id39" itemDisabled="false" itemLabel="Any" itemValue="com.jboss.dvd.seam.Category@2e4bce" rendered="true" transient="false"/>
|
| <UISelectItems id="_id40" rendered="true" transient="false"/>
|
| </HtmlSelectOneMenu>
|
| </dd> <dt>
|
| <HtmlOutputText escape="true" id="_id42" rendered="true" transient="false" value="Results Per Page:"/>
|
| </dt> <dd>
|
| <HtmlSelectOneMenu disabled="false" id="_id44" immediate="false" localValueSet="false" readonly="false" rendered="true" required="false" transient="false" valid="true" value="15">
|
| <UISelectItem id="_id45" itemDisabled="false" itemLabel="10" itemValue="10" rendered="true" transient="false"/>
|
| <UISelectItem id="_id46" itemDisabled="false" itemLabel="15" itemValue="15" rendered="true" transient="false"/>
|
| <UISelectItem id="_id47" itemDisabled="false" itemLabel="20" itemValue="20" rendered="true" transient="false"/>
|
| <UISelectItem id="_id48" itemDisabled="false" itemLabel="30" itemValue="30" rendered="true" transient="false"/>
|
| </HtmlSelectOneMenu>
|
| </dd> <dd>
|
| <HtmlCommandButton action="#{search.doSearch}" disabled="false" id="_id50" immediate="false" readonly="false" rendered="true" style="width: 166px;" styleClass="formButton" transient="false" type="submit" value="Search"/>
|
| </dd> </dl>
|
| </HtmlForm>
|
| </dd> </dl> </div>
|
| <UINamingContainer id="_id53" transient="false">
|
| <div class="menu"> <dl> <dt class="menuHeader">#{msgs.searchCartHeader}</dt> <dd class="menuForm">
|
| <HtmlDataTable border="-2147483648" columnClasses="dvdtablecol" first="0" headerClass="dvdtablehead" id="_id55" rendered="true" rowClasses="dvdtableodd,dvdtableeven" rowIndex="-1" rows="0" styleClass="dvdtable" transient="false" var="item">
|
| <UIColumn id="_id56" rendered="true" transient="false">
|
| #{item.quantity}
|
| </UIColumn>
|
| <UIColumn id="_id59" rendered="true" transient="false">
|
| #{item.product.title}
|
| </UIColumn>
|
| <!-- <h:column> #{item.product.price} </h:column> -->
|
| </HtmlDataTable>
|
| </dd> <dd>
|
| <HtmlOutputText escape="true" id="_id63" rendered="true" transient="false" value="Total:"/>
|
| <HtmlOutputText converter="javax.faces.convert.NumberConverter@1202ba5" escape="true" id="_id64" rendered="true" transient="false"/>
|
| </dd>
|
| <HtmlForm enctype="application/x-www-form-urlencoded" id="_id66" rendered="true" submitted="false" transient="false">
|
| <dd>
|
| <HtmlCommandButton action="checkout" disabled="false" id="_id68" immediate="false" readonly="false" rendered="true" style="width: 166px;" styleClass="formButton" transient="false" type="submit" value="Checkout"/>
|
| </dd>
|
| </HtmlForm>
|
| </dl> </div>
|
| </UINamingContainer>
|
| </div> <div id="content">
|
| <UIDebug hotkey="D" id="_id72" rendered="true" transient="true"/>
|
| <p> This is the DVD search screen. Use the search box to the right to search for DVDs. The search component is a conversational Seam component. You can perform multiple searches in multiple windows, and Seam will keep them all separate. The shopping cart, of course, is shared, allowing the customer to place items in the cart from any of the search screens. </p> <div class="bestouter">
|
| <UIRepeat id="_id74" offset="0" rendered="true" size="-1" transient="false" var="item">
|
| <div class="bestinner"> <div class="besttitle">
|
| <HtmlLink id="_id76" propagation="default" rendered="true" transient="false" view="/dvd.xhtml">
|
| #{fn:length(item.title) gt 14 ? fn:substring(item.title,0,13) : item.title}
|
| <UIParameter id="_id78" name="id" rendered="true" transient="false"/>
|
| </HtmlLink>
|
| </div> <div class="bestimage">
|
| <HtmlLink id="_id80" propagation="default" rendered="true" transient="false" view="/dvd.xhtml">
|
| <UIParameter id="_id81" name="id" rendered="true" transient="false"/>
|
| <img src="#{item.imageURL}"/>
|
| </HtmlLink>
|
| </div> </div>
|
| </UIRepeat>
|
| </div>
|
| </div> </div> <div class="grayBox" style="text-align: right; color: #666;">#{copyright}</div> </div> </body> </html>
|
| </UIViewRoot>
|
| +- Scoped Variables
| Request ParametersName Value
| None
| Request AttributesName Value
| msgs com.sun.facelets.tag.jsf.core.LoadBundleHandler$ResourceBundleMap@179b387
| Session AttributesName Value
| actor org.jboss.seam.core.Actor@155c815
| cart ShoppingCartBean:1s225g5l-o8udnv-f8gfft2o-1-f8zsqbj4-9ge
| localeSelector org.jboss.seam.core.LocaleSelector@c30fb3
| Application AttributesName Value
| applicationContext org.jboss.seam.core.ApplicationContext@10a2d0d
| businessProcessContext org.jboss.seam.core.BusinessProcessContext@113b417
| conversationContext org.jboss.seam.core.ConversationContext@94691f
| eventContext org.jboss.seam.core.EventContext@181a7dc
| facesContext org.jboss.seam.core.FacesContext@133919a
| isUserInRole org.jboss.seam.core.IsUserInRole@9c4f85
| pageContext org.jboss.seam.core.PageContext@28de85
| pooledTask org.jboss.seam.core.PooledTask$$EnhancerByCGLIB$$a2d1df58@57e01d
| pooledTaskInstanceList org.jboss.seam.core.PooledTaskInstanceList$$EnhancerByCGLIB$$6c1ab3a9@ff3f4d
| processDefinitionSwitcher com.jboss.dvd.seam.ProcessDefinitionSwitcher$$EnhancerByCGLIB$$e36bc0a9@194e71a
| processInstance org.jboss.seam.core.ProcessInstance$$EnhancerByCGLIB$$db56c184@1290155
| sessionContext org.jboss.seam.core.SessionContext@e6396
| statelessContext org.jboss.seam.core.StatelessContext@ac3c11
| taskInstance org.jboss.seam.core.TaskInstance$$EnhancerByCGLIB$$fd034876@19b9b1b
| taskInstanceListForType org.jboss.seam.core.TaskInstanceListForType$$EnhancerByCGLIB$$60b68351@d0797e
| userPrincipal org.jboss.seam.core.UserPrincipal@e415b8
| Nov 14, 2007 6:56:22 AM - Generated by Facelets
|
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4104475#4104475
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4104475
18 years, 8 months