ADF Faces: state saving method questions

Please, could somebody elaborate implementation of state saving in ADF Faces? What specially interests me is a way on which it is improved in comparison with RI. Will be current implementation further improved regarding size of state which is stored in session or on client?
Further, is it possible to make a read only page stateless? I tried naively to implement restore view phase listener which sets up transient property of view root to true. Page was rendered fine, but when I try to post something from that page NullPointerException was thrown from UIXComponentBase._getRendererImpl() method.
Tnx

Could you elaborate on the back button support?
I'm trying to do something very simple right now with two JSF pages using ADF BC/Faces. One page is a simple table allowing the user to select a row. The second page allows the user to view details on the selected row. This is view only at this point. I've found however, that if I select a row and go to the detail page and then hit the back button to return to the first page and then select another row and attempt to go to the detail page I get an error message like so:
1. validation - JBO-29000: Unexpected exception caught: oracle.jbo.JboException, msg=JBO-35007: Row currency has changed since the user interface was rendered. The expected row key was oracle.jbo.Key[1246992000 ]
2. validation - JBO-35007: Row currency has changed since the user interface was rendered. The expected row key was oracle.jbo.Key[1246992000 ]
I'm at a loss as to how to resolve this issue.
Thanks,
Corey

Similar Messages

  • ADF server-side state saving method

    Hi all,
    As far as I know, ADF has three view state saving methods.
    1. client - tokens
    2. client - all
    3. server
    My question is about server-side state saving.
    If I set state saving methos "server" in web.xml, view state is stored in session scope as LRU map.
    And the size of the map can be configured with below parameters in web.xml.
    <context-param>
    <param-name>com.sun.faces.numberOfViewsInSession</param-name>
    <param-value>10</param-value>
    </context-param>
    <context-param>
    <param-name>com.sun.faces.numberOfLogicalViews</param-name>
    <param-value>5</param-value>
    </context-param>
    However I think these parameters is offered by Mojarra (Sun's JSF RI) and any ADF guides don't mention them.
    These parameters are supported in ADF?
    Regards,
    Atsushi

    Hi,
    don't have a support statement for this but would be surprised if we don't as ADF Faces runs on top of the JSF RI.
    However, I am wondering why your customer prefers state saving being handled on the server as it doesn't allow fail over for your application setup. Also it is the recommended option
    http://docs.oracle.com/cd/E25054_01/web.1111/b31973/ap_config.htm#CEGECDJF
    +"Context parameter javax.faces.STATE_SAVING_METHOD: Specifies where to store the application's view state. By default this value is server, which stores the application's view state on the server. *It is recommended that you set javax.faces.STATE_SAVING_METHOD to client* when you use ADF Faces, to store the view state on the browser client. When set to client, ADF Faces then automatically uses token-based, client-side state saving. *You can specify the number of tokens to use instead of using the default number of 15*.+
    +You can specify the following state-saving context parameters:+
    +org.apache.myfaces.trinidad.CLIENT_STATE_METHOD: Specifies the type of client-side state saving to use when client-side state saving is enabled by using javax.faces.STATE_SAVING_METHOD. The values for CLIENT_STATE_METHOD are:+
    +token: (Default) Stores the page state in the session, but persists a token to the client. The simple token, which identifies a block of state stored back on the HttpSession object, is stored on the client. This enables ADF Faces to disambiguate the same page appearing multiple times. Failover is supported.+
    +all: Stores all state information on the client in a (potentially large) hidden form field. It is useful for developers who do not want to use HttpSession.+
    +*Performance Tip:*+
    +Because of the potential size of storing all state information, it is recommended that you set client-state saving to token.+
    +*org.apache.myfaces.trinidad.CLIENT_STATE_MAX_TOKENS*: Specifies how many tokens should be stored at any one time per user, when token-based client-side state saving is enabled. The default is 15. When the number of tokens is exceeded, the state is lost for the least recently viewed pages, which affects users who actively use the Back button or who have multiple windows opened at the same time. If you are building HTML applications that rely heavily on frames, you would want to increase this value.+
    +*org.apache.myfaces.trinidad.COMPRESS_VIEW_STATE*: Specifies whether or not to globally compress state saving on the session. Each user session can have multiple pageState objects that heavily consume live memory and thereby impact performance. This overhead can become a much bigger issue in clustering when session replication occurs. The default is off.+
    +org.apache.myfaces.trinidad.USE_APPLICATION_VIEW_CACHE: Enables the Application View Cache (AVC), which can improve scalability by caching the state for the initial renders of the page's UI at an application scope. However, every page in the application must by analyzed for support in the AVC to avoid potential problems with debugging in an unexpected state and information leakage between users. Additionally, development is more difficult since page updates are not noticed until the server is restarted, and although initial render performance is enhanced, session size is not.+
    +*CAUTION:*+
    +The Application View Cache is not supported for this release. The feature does not work for any page where the rendering of the component tree causes the structure of the component tree to change temporarily. Since this is often the case, USE_APPLICATION_VIEW_CACHE should not be used."+
    So unless your customer has a good reason for server side state I would suggest him/her to go with best practices
    Frank

  • Oracle.adf.faces.STATE compressed?

    Dear all,
    i have a question about how adf faces saving its view sate.
    in jsf (1.1_02), i can specify a context-parameter com.sun.faces.COMPRESS_STATE=false to avoid compressing the state information.
    adf faces seem store the view info in a hidden form field "oracle.adf.faces.STATE"
    is there any similar parameter in adf faces?
    or adf faces don't compress the state info?
    thank you.

    Jonas,
    It works if I include the following:
    <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
    The source is now:
    <%@ taglib uri="http://xmlns.oracle.com/adf/faces/EA8" prefix="af"%>
    <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
    <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
    <%@ page contentType="text/html;charset=windows-1252"%>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <title>untitled</title>
    </head>
    <body>
    <f:view>
    <af:outputText value="hello ADF Faces!"/>
    </f:view>
    </body>
    </html>
    Did I feel out something in my library entry?
    Thanks.

  • ADF Client State Saving

    I have a doubt about client state saving and ADF Faces Components/JSF.
    In my scenario, i have a hardware load balancer in front of two weblogic standard servers. The load balance is configured without affinity.
    The client token generated by the server hitted for the first roundtrip is not readable by the other server on a second roundtrip. I think because each server generates a different hash key. So when the load balancer forwards the client request to the other server in the webfarm, an error occurs because the server can not read the token.
    In .NET, we have a machineKey Attribute configurable in machine.config that let me configure the same hash key in both servers. In this way both servers can read the client token generated from each other.
    Is there something similar in ADF Faces/Weblogic scenario?
    Or ADF Faces Components can be fully stateless?

    John, in my scenario I am looking for scalability and high availability.
    Affinity does not provide high availability to users connected to a server in case of server's outage.
    Client state method setted to All does not fit in my scenario because the page is much complex and a large quantity of data would have to be stored in the client view state causing client slowdown and much network traffic overhead during roundtrips.
    So, or i use client state method setted to token and i be able to generate and read the same token by different servers in the webfarm (and store the session in JDBC persistent store) or i use ADF Faces in a complete stateless manner (nor state at client side neither at server side).
    My doubts are:
    - Is possible to generate and read the same client state token in different servers in a webfarm (http session stored in JDBC) like in ASP.NET through machineKey settings in machine.config?
    - Is possible to use ADF Faces Components in a complete stateless manner without having to store state at client side or server side to achive scalability?
    Best regards

  • JDeveloper 10g, ADF Faces & BC: setVar method on CoreTable is not working

    Hi all,
    I am in the process of creating a custom tag library for our organization. I seem to be having problems with the setVar method on the CoreTable component. I created a simple reproducible example using the scott/tiger schema. Within my tabletest.jsp, I have a af:table which was created via dragging from the datacontrol pallet. Next, I add my custom tag and set the same value attribute. When I run the page, #{row.Deptno} does not evaluate to anything! However, I know that the value is set properly due to the same number of rows appearing within my custom table tag.
    Suggestions are appreciated.
    thanks,
    Wes
    Here is the screen shot of my example:
    http://www.flickr.com/photos/54652784@N03/5062690216
    jsp code:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    <%@ page contentType="text/html;charset=windows-1252"%>
    <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
    <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
    <%@ taglib uri="http://xmlns.oracle.com/adf/faces" prefix="af"%>
    <%@ taglib uri="http://xmlns.oracle.com/adf/faces/html" prefix="afh"%>
    <%@ taglib uri="http://acme.customtag" prefix="customtag"%>
    <f:view>
    <afh:html>
    <afh:head title="tabletest">
    <meta http-equiv="Content-Type"
    content="text/html; charset=windows-1252"/>
    </afh:head>
    <afh:body>
    <af:messages/>
    <h:form>
    <af:outputText value="below is the adf table"/>
    <af:table value="#{bindings.ViewObj1.collectionModel}" var="row">
    <af:column sortProperty="Deptno" sortable="false"
    headerText="#{bindings.ViewObj1.labels.Deptno}">
    <af:outputText value="#{row.Deptno}"/>
    </af:column>
    <af:column sortProperty="Dname" sortable="false"
    headerText="#{bindings.ViewObj1.labels.Dname}">
    <af:outputText value="#{row.Dname}"/>
    </af:column>
    </af:table>
    <af:objectSpacer width="10" height="50"/>
    <af:outputText value="Below is the custom table"/>
    </h:form>
    <customtag:customtable value="#{bindings.ViewObj1.collectionModel}"
    disabled="false"/>
    </afh:body>
    </afh:html>
    </f:view>
    CustomTable.java code:
    package customtag;
    import java.io.IOException;
    import javax.faces.application.Application;
    import javax.faces.component.UIComponentBase;
    import javax.faces.context.FacesContext;
    import javax.faces.el.ValueBinding;
    import oracle.adf.view.faces.component.core.data.CoreColumn;
    import oracle.adf.view.faces.component.core.data.CoreTable;
    import oracle.adf.view.faces.component.core.output.CoreOutputText;
    public class CustomTable extends UIComponentBase {
    public static final String COMPONENT_TYPE = "customtag.customtable";
    public static final String RENDERER_TYPE = null;
    private CoreTable table = new CoreTable();
    public CustomTable() {
    public void encodeChildren(FacesContext context) throws IOException {
    // Encode the top most component
    Application apps = context.getApplication();
    table.setVar("row");
    Object value = getAttributes().get("value");
    CoreColumn column = new CoreColumn();
    CoreOutputText cout = new CoreOutputText();
    if (value != null) {
    table.setValue(value);
    ValueBinding rowValueBinding =
    apps.createValueBinding("#{row.Deptno}");
    Object rowValue = resolveExpression("#{row.Deptno}");
    if (rowValue != null) {
    System.out.println("rowValue is reconized. " + rowValue);
    cout.setValue(rowValue);
    } else if (rowValueBinding.getValue(context) != null) {
    System.out.println("rowValueBinding is reconized." +
    rowValueBinding.getValue(context));
    cout.setValueBinding("Value", rowValueBinding);
    } else {
    System.out.println("row is not reconized.");
    cout.setValue("this is a hard coded row attribute value");
    column.getChildren().add(cout);
    table.getChildren().add(column);
    table.encodeAll(context);
    public static Object resolveExpression(String expression) {
    FacesContext ctx = FacesContext.getCurrentInstance();
    Application app = ctx.getApplication();
    ValueBinding bind = app.createValueBinding(expression);
    return bind.getValue(ctx);
    public boolean getRendersChildren() {
    return true;
    public String getFamily() {
    return COMPONENT_TYPE;
    }

    Hi,
    you don't mention a JDeveloper version. If you are not on a recent version, can you try one. If it reproduces, please provide steps required for a reproducible test case
    Frank

  • ADF Faces: Table detailstamp facet question

    HI!
    Is it possible to make detailstamp disclosured by default? How?
    Thanks in advance.
    Regards,
    Gustavo

    Hi there!
    Maybe it is not the right place to ask ADF Faces related questions...
    Can someone give me a pointer to where ask questions about ADF Faces?
    Thanks
    Thomas

  • ADF Faces Core Table, TableSelectOne question

    Greetings
    I am using ADF Faces Core Table to display a list and I have it setup with TableSelectOne, it works great. My question is this, I set required = true on the select button and it works. If I dont select one it no longer submits. My question is how do i get the error message back out I tried adding an af:message tag with from = tableSelectOne1 and I dont get anything back out. Is there a way to get this error message out so I can display it for the end user?
    Thanks
    tro

    Hi,
    Try using af:messages instead, as it displays all messages added to the FacesContext.
    Regards.
    Fábio

  • Adf faces: execute bean method after table is loaded

    Hi,
    How can I execute a method after an adf table is rendered on the page?
    This is what I want to do:
    I have a master/detail:
    - the master part contains a list of materials
    - the details contains a list of customers and volumes depending on the selected material.
    I tried to add totals on the details table:
    - I created an output text in the footer-facet of the colums containing volumes
    - I created a binding of the detail table to a CoreTable.
    - I created a method in a managed bean related to this CoreTable binding, so I can browse to all rows in the table and calculate the sum.
    - I then set the value of the output text to the total calculated in the managed bean.
    the problem is that I don't know how to execute the calculate procedure after the data in the detail table exists.
    What I tried:
    - call the calculate procedure in the setCoreTable method. --> at this point, there is no data in the table and this results in a nullPointerException when the pages is loaded.
    - call the calculate procedure on the valueChangeListener of the material list --> this doesn't work because totals are calculated for the previous details set.
    - I tried to add the call in one of the table listeners but I cannot find a listener that is executed after data is loaded in the table...
    for testing purpose only, I added a button: calculateTotals that calculates the totals. This works correctly.

    Hi,
    if you use page fragments exposed in an ADF region, you have two options I see
    1. Use a method call activity to call the managed bean
    2. Use a hidden UI component that references the setter/getter exposed in a managed bean and just use this as an indication for the page fragment being loaded
    Keragala

  • Questions for ADF Faces

    I have been following this forum for about a year now and thought I should raise some questions regarding current ADF Faces state.
    With the recent donation to Apache, is Oracle going to continue roll out enhancements and is there going to be an ADF.Next?
    A good place to demonstrate commitment is by having a dedicated ADF Faces and BC forum (preferable built using it too!).
    There are several third party vendors that offer key JSF based UI components (AJAX based table, input, menus, drag and drop, etc.. ), are there any plans to incorporate these into the ADF Faces component library?
    Finally, has anyone deployed ADF based application in production? If you have a success story you would like to share, I have a case of beer with your name on it. Shoot me a hello at [email protected] See you at OOW.
    -Wes

    Oracle is still developing ADF Faces - but now we are doing it together with Apache on the trinidad project.
    In addition Oracle is building an AJAX based rendering kit on top of the components - you can see a demo of these new components if you'll check the replay of Thomas's Kurian keynote at this year's Javaone.
    http://webcast-west.sun.com/ramgen/archives/06D00627/06D00627_03_300.rm
    If you want an ADF Faces forum - you can use the apache forum.
    We rather keep a unified forum for all things related to JDeveloper and ADF, since there are many questions that cross the boundries between topics, and since it makes it easier for us to only need to monitor a single forum.
    And yes there are ADF Faces based applications out there in production, and some of them are even on the Internet.
    https://wwws.gen.lacapitale.com/CoteWebAuto/faces/pages/webepIntr.jspx
    and
    http://at.sparinvest.com/sparinvest/faces/portal/home/start.jsp
    For example.

  • Server state saving restores view even request params changed for same page

    hi all,
    i've a problem with the state saving method of JSF... environment: JSF1.1, WAS6, Spring2.0..
    i have two buttons those POP UP an IFRAME inside with a details page..
    <input type="button" onclick="openDetailsPage('detailsPage.jsp?id=1');" value="show first record's details" />
    <input type="button" onclick="openDetailsPage('detailsPage.jsp?id=2);" value="show second record's details" />
    detailspage gets the "id" param and query&show the details of the requested data IF THE REQUEST IS NOT POSTBACK... like below;
    public void onPreRender() {
    if (!isPostBack()) {
    // get id from param, query the record and show its details...
    problem is; if i set the state_saving_method as "server"; jsf is creating view only for the first time... after that, no matter what record info i sent, it's restoring the old page...
    however, there's no problem if i set state_saving_method=client... my details page view is being created in every request...
    what may be the problem? when the server state saving method used, it's not creating just restoring the previously opened page in every click...
    thanks in advance,
    hasan...

    I just did, thank you. Here are the reports i filed:
    [Server side viewstate saving: UIViewRoot's viewMap gets cleared on postback|http://java.net/jira/browse/JAVASERVERFACES-1982]
    [Configuration attribute com.sun.faces.serializeServerState only work for the first postback|http://java.net/jira/browse/JAVASERVERFACES-1983]

  • Why sever-side state saving doesn't support fail over?

    Hi all,
    In my previous thread "ADF server-side state saving method" Frank said that it doesn't support fail over.
    Re: ADF server-side state saving method
    My customer is wondering the reason.
    If anyone has a clear statement about it, could you share it?
    Any help will be much appreciated.
    Atsushi

    Timo,
    As I wrote in my previous thread, my customer adopted multi-windows application design because they didn't know it caused viewExpiredException frequently.
    Now I'm looking for the best setting for avoiding the exception and need ADF guru's help.
    Frank said that ADF is on Sun's RI. And it seems that the state-saving parameters of Mojarra are working correctly in my environment. However any ADF docs don't mention the behavior of server-side state saving clearly. When I set state-saving method "server", view states are managed per logical view (≒ window). And it seems better for multi-window application than using client-token based state management from the perspective of preventing viewExpiredException.
    Because fail over is not their requirement, if we could make sure that server-side state saving doesn't have other side-effects they might adopt it.
    So I'd like to know in more detail about the behavior.
    Thanks,
    Atsushi

  • Bug with h:messages and client state saving?

    I have an application that uses <h:messages ...> to display validation/conversion errors on the page. I find that when I use "client" for my javax.faces.STATE_SAVING_METHOD, the messages completely destroy the display of the web page - HTML seems to be randomly cut off. Using the "server" state saving method solves the problem. Has anyone else seen this behavior? I can duplicate it easily.
    Thanks,
    Don

    Can you provide us with the jsp page you are using? I do not immediately
    see the probem you are encountering.
    Thanks,
    --roger (jsf co-spec lead)                                                                                                                                                                                                                                                                                                   

  • Component binding and state saving

    Hello,
    I have a few questions in regards to component binding and state saving (specifically in regards to the reference implementation) when the saving method is client and backing-beans are in the request scope rather than in the session scope:
    1) if a component instance is bound to a backing-bean property then does the state of that component get saved when the view state is saved?
    2) for UIData component, if the component value is bound to a list, does the actual list (after being wrapped) serve as the local data for the component? If this is the case, when the state is saved and then subsequently restored, does the list get re-created with the original number of items?
    Regards,
    Len Takeuchi

    Thanks for the quick response.
    (2) The actual list is not saved; the list will be
    re-queried on subsequent requests.The list composition may have changed by the time the list is re-queried. If the table being displayed is updatable then transfer of information from request back to the list (during Apply Request Values) may not happen properly. So does that pretty much mean that the original list has to be kept around (in the session)? If the state saving method is server then does the saved state maintain a reference to the original list across requests?
    Len Takeuchi

  • Error while saving state in 'client' , in ADF faces application

    Thank you for reading my post
    I have an ADF faces application and i get this error and my application does not function correctly , does any one has an idea ?
    thanks
    06/10/17 17:34:38.15 10.1.3.1.0 Started
    06/10/17 17:34:55.546 web2: 10.1.3.1.0 Started
    06/10/17 17:45:49.531 web2: Servlet error
    java.lang.NullPointerException
         at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:322)
         at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:130)
         at oracle.adfinternal.view.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:157)
         at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:87)
         at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)
         at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:117)
         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:198)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:64)
         at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl._invokeDoFilter(AdfFacesFilterImpl.java:367)
         at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl._doFilterImpl(AdfFacesFilterImpl.java:336)
         at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl.doFilter(AdfFacesFilterImpl.java:196)
         at oracle.adf.view.faces.webapp.AdfFacesFilter.doFilter(AdfFacesFilter.java:87)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:621)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:368)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:866)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:448)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler.java:216)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.HttpRequestHandler.run(HttpRequestHandler.java:117)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.HttpRequestHandler.run(HttpRequestHandler.java:110)
         at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
         at java.lang.Thread.run(Thread.java:619)
    06/10/17 17:46:02.703 web2: Servlet error
    javax.servlet.jsp.JspException: Error while saving state in 'client': 'An established connection was aborted by the software in your host machine'.
         at com.sun.faces.taglib.jsf_core.ViewTag.doAfterBody(ViewTag.java:206)
         at _index._jspService(_index.java:473)
         at com.orionserver[Oracle Containers for J2EE 10g (10.1.3.1.0) ].http.OrionHttpJspPage.service(OrionHttpJspPage.java:59)
         at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:453)
         at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:591)
         at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:515)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:711)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:368)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.ServletRequestDispatcher.unprivileged_forward(ServletRequestDispatcher.java:287)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.ServletRequestDispatcher.access$100(ServletRequestDispatcher.java:50)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.ServletRequestDispatcher$2.oc4jRun(ServletRequestDispatcher.java:193)
         at oracle.oc4j.security.OC4JSecurity.doPrivileged(OC4JSecurity.java:283)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.ServletRequestDispatcher.forward(ServletRequestDispatcher.java:198)
         at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:322)
         at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:130)
         at oracle.adfinternal.view.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:157)
         at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:87)
         at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)
         at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:117)
         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:198)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:64)
         at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl._invokeDoFilter(AdfFacesFilterImpl.java:367)
         at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl._doFilterImpl(AdfFacesFilterImpl.java:336)
         at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl.doFilter(AdfFacesFilterImpl.java:196)
         at oracle.adf.view.faces.webapp.AdfFacesFilter.doFilter(AdfFacesFilter.java:87)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:15)
         at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:167)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:619)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:368)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:866)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:448)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler.java:216)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.HttpRequestHandler.run(HttpRequestHandler.java:117)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.http.HttpRequestHandler.run(HttpRequestHandler.java:110)
         at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
         at java.lang.Thread.run(Thread.java:619)

    StateManagerImpl.saveSerializedView tries to let UIViewRoot be a session
    attribute and the error message says it should be serializable; certainly it' not.
    I think HttpSession.setAttribute does not claim the object should be serializable.
    I don't know why apache's StandardSession.setAttribute claims so.

  • Information about adf data model's state management in JSF/ADF faces?

    Dear All,
    i am developing an application with JSF/ADF faces + using
    adf data model (EJB, not adf bc)...
    i want to know more about state management of adf data model..
    1. under what condition, will the data in the binding context
    (methodIterator, variableIterator, accessorIterator..etc) be maintained accross
    http requests? say browse pageA.jspx, pageB.jspx, pageC.jspx..then do data
    in the corresponding pages saved somewhere else until session timeout?
    2. how do the binding context data be saved ?? http session?
    i can't find detail information in the adf bc dev guide and the adf dev guide..
    could anyone give me more information about this?? any better document??
    i have asked these question several times...but seem nobody can give me a
    full picture about the adf data model's state management....it is quite important
    in order to develop good application using adf data model.
    my company have brought oracle's support service...can i get these information
    through metalink (open a SR) ?? or actually no such information available ??
    btw, after playing with adf data model for a few weeks, i do find it is very
    hard to learn it... no complete document, information is just by providing example...
    adf data model do make:
    1. simple logic, supported by adf, more simple in coding
    2. simple logic, not supported by adf, more complex in coding
    3. complex logic, much more complex in coding...brain damage..
    lsp

    Hi,
    actually, these pages don't explain the state management about the adf data model's iterators?
    i want to know the state management of the iterators...for some iterators..it's
    state is maintained across requests...
    please see my previous post: ADF JSF data binding: why state maintained between requests? that Frank Nimphius said:
    "in this case its the iterator that survives the page navigation"...
    in the adf dev guide..section 5.5.5..it says: "Upon each request, the iterator bindings are refreshed to rebind them to the
    underlying RowSetIterator objects. By default, the rowset iterator state and the
    data caches are maintained between requests."
    in dev guide, it seems state is maintained for request for the same page, but not
    accross different pages. but in fact, the rowset iterator do survive...
    any detail document that write down the actual behavior of the iterators?
    thank you.
    lsp

Maybe you are looking for