Skip to Main Content

Java EE (Java Enterprise Edition) General Discussion

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Interested in getting your voice heard by members of the Developer Marketing team at Oracle? Check out this post for AppDev or this post for AI focus group information.

Portlets And Ajax

843844Aug 21 2008
Hi all,

I am new to Portlets and Ajax4Java.

In a bean I put a code like this...

request.getPortletSession().setAttribute("usersettings", settingsBean);

and in the page i have,
<a4j:portlet
      xmlns="http://www.w3.org/1999/xhtml"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:a4j="https://ajax4jsf.dev.java.net/ajax">

	<f:view>
		<h:form>
	    	<div align="center">
				<h:panelGrid id="panel" columns="2" align="center" border="0" styleClass="specBody">
					<h:outputText value="Please select a news category: " />
					<a4j:region  selfRendered="true" ajaxListener="#{usersettings.processCategoryChange}" id="Region">
						<h:selectOneMenu id="categoryList" value="#{usersettings.selectedCategory}">
							<!-- 
							<a4j:ajaxListener type="org.ajax4jsf.ajax.ForceRender" event="onchange" 
									actionListener="#{usersettings.processCategoryChange}" reRender="channelList"></a4j:ajaxListener>
							<a4j:support actionListener="#{usersettings.processCategoryChange}" event="onchange" reRender="channelList" />
							 -->
							<f:selectItems value="#{usersettings.categoryNames}" />
							<a4j:support action="#{usersettings.processCategoryChange}" event="onchange" reRender="channelList"/>
						</h:selectOneMenu>
					</a4j:region>
					<h:outputText id="channel" value="Please select channels: " style="width:30"/>
					<h:selectManyListbox id="channelList" value="#{usersettings.selectedFields}" size="5" >
						<f:selectItems value="#{usersettings.fields}" />
					</h:selectManyListbox>
					<br />
					<f:facet name="footer">
				        <h:panelGroup style="align: right">
				           	<a4j:commandButton id="cButton" value="Update" reRender="output" 
				           			actionListener="#{usersettings.processUpdate}" style="align: right"/>
				        </h:panelGroup>
				    </f:facet>
				</h:panelGrid>
			</div>
		</h:form>
	</f:view>
</a4j:portlet>
In the bean to the process AjaxEvent,
public void processCategoryChange(AjaxEvent e) {
		String value = (String) e.getSource();
		this.getFields().clear();
		for (Iterator itr = this.getNewsCategories().listIterator(); itr.hasNext();) {
			NewsCategory category = (NewsCategory) itr.next();
			if (category.getName().equals(value)) {
				for (Iterator iter = category.getFields().iterator(); iter.hasNext();) {
					NewsField field = (NewsField) iter.next();
					this.getFields().add(field.getName());
				}
			}
		}
	}
and I'm getting an exception...

18:16:41,343 WARN [MyFacesResourceLoader] Unparsable lastModified : @lastModified@
18:16:42,015 WARN [LoadContexts] fail-safe cleanup (collections) : org.hibernate.engine.loading.CollectionLoadContext@1a349b9<rs=com.mysql.jdbc.ResultSet@77b81f>
18:16:42,015 WARN [LoadContexts] fail-safe cleanup (collections) : org.hibernate.engine.loading.CollectionLoadContext@13d16a7<rs=com.mysql.jdbc.ResultSet@9e9dbe>
18:16:42,015 WARN [LoadContexts] fail-safe cleanup (collections) : org.hibernate.engine.loading.CollectionLoadContext@19a34bb<rs=com.mysql.jdbc.ResultSet@12a4cb3>
18:16:42,015 WARN [LoadContexts] fail-safe cleanup (collections) : org.hibernate.engine.loading.CollectionLoadContext@fbf446<rs=com.mysql.jdbc.ResultSet@1cc4318>
18:16:42,015 WARN [LoadContexts] fail-safe cleanup (collections) : org.hibernate.engine.loading.CollectionLoadContext@16237c3<rs=com.mysql.jdbc.ResultSet@a1c1ee>
18:16:58,250 ERROR [PhaseListenerManager] Exception in PhaseListener RESTORE_VIEW(1) afterPhase
javax.faces.FacesException: Prefix for attributes in portlet session scope not found
at org.ajax4jsf.portlet.context.ServletContextImpl.getSessionPrefix(ServletContextImpl.java:212)
at org.ajax4jsf.portlet.context.ServletContextImpl.getSessionAttribute(ServletContextImpl.java:219)
at org.ajax4jsf.portlet.context.AbstractExternalContext$8.getAttribute(AbstractExternalContext.java:459)
at org.ajax4jsf.portlet.context.ContextAttributesMap.get(ContextAttributesMap.java:18)
at org.apache.myfaces.el.VariableResolverImpl.resolveVariable(VariableResolverImpl.java:281)
at org.ajax4jsf.framework.ajax.AjaxContext.getCurrentInstance(AjaxContext.java:154)
at org.ajax4jsf.framework.renderer.AjaxPhaseListener.afterPhase(AjaxPhaseListener.java:76)
at org.apache.myfaces.lifecycle.PhaseListenerManager.informPhaseListenersAfter(PhaseListenerManager.java:92)
at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:99)
at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:70)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:139)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.ajax4jsf.framework.ajax.xmlfilter.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:127)
at org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter.doFilter(BaseFilter.java:277)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:147)
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:179)
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.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
at java.lang.Thread.run(Unknown Source)
18:16:58,265 ERROR [PhaseListenerManager] Exception in PhaseListener RESTORE_VIEW(1) afterPhase


can anyone help me?
thanks,
Anoop

Comments

Locked Post
New comments cannot be posted to this locked post.

Post Details

Locked on Sep 18 2008
Added on Aug 21 2008
0 comments
125 views