ADF Commit problem

Dear all
I have a 2 form application with ADF,ADF BC
i have form A that provide CRUD for entity a
and form B that provide CRUD for entity b
i need to access form B via form A
when i insert a record in form A but not saving it and go to form B
and insert a record and commit it the inserted record in form A commited automatically
have can i prevent this action and have control on transactions?
any comment from you is a big help.
regards
Mohsen

Hi vijay,
My JDev version is 11g.
I am facing a related issue. I have two pages(with two commit buttons) and two appmodules.
I wanted to override commit operation in both pages and so i implemented different custom transactionimpl classes and transactionfactory classes for both modules.
But issue i am facing was for both commits its going to only one transactionfactory class which should not be the case.
Can you please help on this.
Ref Link : Custom DBTransaction Implementation in different modules
Thanks
Shrikanth

Similar Messages

  • Comma problem with global string variable

    Hi,
    I'm fiighting with comma problem for global string variable. I've on page string for example "7nndqrr52vzyb,0" and by dynamic column link I'm assigning this string to global variable. Then I'm trying to display value of that global variable on another page but I see only string till comma, nothings more. I'm not sure what I'm doing wrong because when I'm trying to assign that value normally by computation process as a constant value is fine and see on another page correct string. I'll be really glad for help.
    Thanks
    Cheers,
    Mariusz

    When it tries to display the string, it sees the comma and wants to believe the string is terminated. You could escape the , in the string or replace it with a different character..
    See this link: http://download.oracle.com/docs/cd/E17556_01/doc/user.40/e15517/concept.htm#BEIGDEHF
    Thank you,
    Tony Miller
    Webster, TX
    If vegetable oil is made of vegetables, what is baby oil made of?
    If this question is answered, please mark the thread as closed and assign points where earned..

  • COMMIT problem in TopLink, Struts, JSP and ADF Databinding sample

    In the sample Developing a J2EE Application using TopLink, Struts, JSP and ADF Databinding,
    I followed all the steps to build a department browse page and a edit page.
    But when I get to Step number 23 in "Create a JSP to Edit Departments" I have a problem with the commit.
    Only after I make a change in the form and click the sumbit button, the commit and rollback buttons become active. And After I click the commit button the data gets commited to the database but the page inofmation changes to the very first department record, not the current one.
    How do I make those buttons active with out the extra click on the submit?
    After I click the commit button, how do I keep the current data on the screen?
    Thanks for you help.

    Shay,
    Thanks for the reply.
    For #1, I was able to do the following and get away with not having to press submit first. I just removed the bindings for disable. I hope that does not cause any problems?
    <input type="submit" name="event_Commit" value="Commit" />
    <input type="submit" name="event_Rollback" value="Rollback" />
    For #2, How I add an action on an HTML button? My UIModel.xml for the edit department page currently has two actions on it. Commit and RollBack. Is it linked through the "name" attribute of the input tag?

  • Oracle ADF - Commit operation issue.

    Hi,
    I am new to Oracle ADF. I am using Oracle jDeveloper 11.1.1.4.0
    and facing problem when I try to save a new record from within application.
    I have called a action on commit button and used auto generated code, here is the it -
    BindingContainer bindings = getBindings();
    OperationBinding operationBinding = bindings.getOperationBinding("Commit");
    Object result = operationBinding.execute();
    if (!operationBinding.getErrors().isEmpty()) {
    return null;
    I read that after execute statement framework calls doDML(int operation, TransactionEvent e) method in EOImpl and there we do insert/update/delete...etc,
    But when I debug my application it doesn't. Please correct me if I am wrong.
    Unable to understand what exactly the problem is?
    Appreciate your help.
    Thanks in advance.
    Madhav.

    Hi,
    Yes, I do have a break point in doDML() of EOImpl.java
    Also I have another break point in bean before it calls the EOImpl's doDML().
    I'll show you the action method in bean which get's call on click of commit button in .jspx,
        public String commitAction() {
            BindingContainer bindings = getBindings();
            OperationBinding operationBinding = bindings.getOperationBinding("Commit");
            Object result = operationBinding.execute();
            if (!operationBinding.getErrors().isEmpty()) {
                return null;
            return null;
        }In this method I put a break point at
    Object result = operationBinding.execute();from here control doesn't go to EOImpl class.
    Here is the .jspx code for commit button,
    <af:commandButton   text="Commit"
                                    disabled="#{!bindings.Commit.enabled}"
                                    id="cb1"
                                    action="#{CustomerProfileBean.commitAction}"/>Can I use both action and actionListener properties for same command button?
    Is this technically correct?
    Thanks,
    Madhav.
    Edited by: 877436 on Aug 4, 2011 11:49 PM

  • ADF BC : Problem in Inserting a Master - Detail Record

    Hi,
    I am new to ADF Business Components. I am into a project where i use only the ADF BC as ORM/DB Operations and for the front end I use some other framework. The Problem is.
    I have two entity objects and a ViewLink between them. [Relation between "Order" to "Item" is (1 to many relation)].
    [I saw many examples in forums where its explained with View Objects But here I DID NOT create any View Object. I have only Entity Objects]
    (1) OrderEO [Entity Object for Order Table]
    (2) ItemEO [Entity Object for Items Table]
    (3) OrderItemsViewLink [A Viewlink where OrderEO.OrderId = ItemEO.OrderId]
    All The Primary keys (for the "Order" and "Items" table ) are handled by Trigger+Sequence at the time of insert in DB side.
    I created custom method to insert "Order" individually it worked fine.
    I created custom method to insert the "Item" individually it worked fine.
    But...
    When I created and "Order" with some "Items" It failing to insert and throws an
    Error : oracle.jbo.InvalidOwnerException: JBO-25030: Failed to find or invalidate owning entity: detail entity ItemEO, row key oracle.jbo.Key[0 ].
    My Custom Method in the AppModuleImpl is like below :
    public void createNewOrderWithNewItems() {
    String entityName = "com.proj.entities.OrderEO";
    EntityDefImpl orderDef = EntityDefImpl.findDefObject(entityName);
    OrderEOImpl newOrder = (OrderEOImpl)orderDef .createInstance2(getDBTransaction(),null);
    try {
    // 3. Set attribute values
    newOrder .setOrderStatusCode("CREATED");
    RowIterator items = newOrder .getItemEO();
    Row newItemRow = items .createAndInitRow(null);
    items .insertRow(newItemRow );
    newItemRow .setAttribute("itemDate", new Date());
    newItemRow .setAttribute("itemQty", new Number(10));
    // 4. Commit the transaction
    getDBTransaction().commit();
    } catch (SQLException e) {
    e.printStackTrace();
    } catch (JboException ex) {
    getDBTransaction().rollback();
    throw ex;
    Here the "Order" is also new and related Items is also new. What I expect is to save the Order with Items in one transaction. How to achieve this. Please suggest.
    Thanks
    Narayan
    Edited by: 817942 on Dec 3, 2010 8:16 AM

    Read through the blog posts which describes
    why this issue occurs and how it should be resolved.
    http://radio-weblogs.com/0118231/stories/2003/01/17/whyDoIGetTheInvalidownerexception.html
    http://one-size-doesnt-fit-all.blogspot.com/2008/05/jbo-25030-failed-to-find-or-invalidate.html
    Thanks,
    Navaneeth

  • Commit Problems

    Hi,
    I am facing the following problem.
    I have a database table with two constraints.
    One constraint is the primary key and the other constraint is a unique value (username) in the table.
    I created my workspace and project in JDeveloper 10.1.3.1.0.3984. I am using ADF Business Components and i created my entity and then created a view based on that entity.
    I then created a main page with the view as an ADF Table and from this main page, i included an edit button to go to the edit page to edit the selected record.
    So far everything is running perfect.
    On my edit page, i have a commandButton that commits changes to the database (i just dragged the commit button and set the disabled property to false).
    When i try to enter a username that already exists, i get two errors:
    1. JBO-26048: Constraint "SEC_USER_UNNIQUE_USERNAME" violated during post operation:"Update" using SQL Statement "UPDATE JAAS_USERS JaasUsers SET USERNAME=? WHERE USERID=?".
    2. ORA-00001: unique constraint (KANDY.SEC_USER_UNNIQUE_USERNAME) violated
    This is ok. However, when i go back to my main page i see that my record changed to the existing duplicate value that i have entered. This is not howeverd saved in the database, however it is being displayed on my main page.
    When i close my session and open my page again, i can see that the changes have not been committed.
    This is quite confusing for the end user. I cannot first display error that there is a violation, then "commit temporarily the changes", and the if i close the session and open the page again to be ok.
    Can someone please help how can i overcome this.
    I tried overriding the method postChanges on the entity but i get again some other errors: Here is my overriden method.
    public void postChanges(TransactionEvent transactionEvent) {
    try{
    super.postChanges(transactionEvent);
    catch (DMLConstraintException ex) {
    DBTransaction currentTrans = getDBTransaction();
    currentTrans.rollback();
    ex.setExceptions(null);
    throw ex;
    And the last i would like to ask is that i declared my commit button to an action(Navigation case), to just go to the main page after pressing save. When i hit save, what i would like to do is that if there are error messages to stay on the edit page and only go to the main page if commit is successfull.
    I hope someone can help me with my issues
    Thank you
    Antonis

    Hi. Please start a new thread for a new question in the future. Thanks.
    You are hitting bug# 5872826 where the Business Components: Options panel adds the incorrect message bundle class name to the JPX file.
    For example, imagine you had done the following:
    1. Default an EO for the DEPT table in a new project
    2. Visit the project properties dialog, and select the
    "Business Components" > "Options" panel
    3. Click (New...) to define a new custom message bundle
    4. Enter a package name of "some.pack.name" and class of "MessageBundle1"
    and click (OK)
    The bug is that JDeveloper saves the incorrect fully-qualified message bundle class
    name just created. Instead of "some.pack.name.MessageBundle1" it
    has only saved "MessageBundle1" so the message bundle will not be seen
    at runtime.
    The workaround, after following the testcase steps above, is to
    click the (Remove) button to remove the incorret message bundle class
    entry, then click (Add) and use the class picker to add the
    "some.pack.name.MessageBundle1" class name. Doing it this way the
    class name is added correctly

  • ADF Tutorial: problem with chapter 10 (Deploying the Application)

    Hi!
    I'm learning from ADF Tutorial (http://www.oracle.com/technology/obe/ADFBC_tutorial_1013/index.htm) and I have problem with chapter 10. After deploying finished application on the server (OracleAS10g) I try to test it but I get this error everytime:
    500 Internal Server Error
    Servlet error: An exception occured. The current application deployment descriptors do not allow for including it in this response. Please consult the application log for details.
    I get this error after typing login credentials. I didn't consult the log, because I don't know where to look for it (could you tell me please?). I did everything as described in the Tutorial, but I know there are mistakes (in Tutorial), so I don't know what to do.
    Thanks for any advices.

    Hi,
    I'm running Windows XP, JDeveloper version 10.1.3.4.0, Oracle AS 10g version 10.1.3.4.0 with patch. When I tried to deploy same application on Windows Vista and OC4J, it work perfectly, which really confuses me. I think I found log file so I will post it here. It's long, I'm sorry about that:
    09/01/23 16:07:07.62 SRTutorial: Servlet error
    JBO-30003: Fond aplikace (oracle.srtutorial.datamodel.SRPublicServiceLocal) selhal při odhlášení modulu aplikace z důvodu následující výjimky:
    oracle.jbo.JboException: JBO-29000: JBO-29000: Bad version number in .class file
         Neplatná třída: oracle.srtutorial.datamodel.SRPublicServiceImpl
         Zavaděč: SRTutorial.web.SRTutorial:0.0.0
         Code-Source: /C:/OracleAS/j2ee/home/applications/SRTutorial/SRTutorial/WEB-INF/classes/
         Konfigurace: WEB-INF/classes/ in C:\OracleAS\j2ee\home\applications\SRTutorial\SRTutorial\WEB-INF\classes
         Závislá třída: oracle.jbo.common.java2.JDK2ClassLoader
         Zavaděč: adf.oracle.domain:10.1.3.1
         Code-Source: /C:/OracleAS/BC4J/lib/adfm.jar
         Konfigurace: <code-source> in /C:/OracleAS/j2ee/home/config/server.xml
         at oracle.jbo.common.ampool.ApplicationPoolImpl.doCheckout(ApplicationPoolImpl.java:2002)
         at oracle.jbo.common.ampool.ApplicationPoolImpl.useApplicationModule(ApplicationPoolImpl.java:2793)
         at oracle.jbo.common.ampool.SessionCookieImpl.useApplicationModule(SessionCookieImpl.java:453)
         at oracle.jbo.http.HttpSessionCookieImpl.useApplicationModule(HttpSessionCookieImpl.java:233)
         at oracle.jbo.common.ampool.SessionCookieImpl.useApplicationModule(SessionCookieImpl.java:424)
         at oracle.jbo.common.ampool.SessionCookieImpl.useApplicationModule(SessionCookieImpl.java:419)
         at oracle.adf.model.bc4j.DCJboDataControl.rebuildApplicationModule(DCJboDataControl.java:1517)
         at oracle.adf.model.bc4j.DCJboDataControl.beginRequest(DCJboDataControl.java:1381)
         at oracle.adf.model.binding.DCDataControlReference.getDataControl(DCDataControlReference.java:99)
         at oracle.adf.model.BindingContext.get(BindingContext.java:457)
         at oracle.adf.model.binding.DCUtil.findSpelObject(DCUtil.java:280)
         at oracle.adf.model.binding.DCUtil.findSpelObject(DCUtil.java:248)
         at oracle.adf.model.binding.DCUtil.findContextObject(DCUtil.java:383)
         at oracle.adf.model.binding.DCIteratorBinding.<init>(DCIteratorBinding.java:127)
         at oracle.jbo.uicli.binding.JUIteratorBinding.<init>(JUIteratorBinding.java:60)
         at oracle.jbo.uicli.binding.JUIteratorDef.createIterBinding(JUIteratorDef.java:87)
         at oracle.jbo.uicli.binding.JUIteratorDef.createIterBinding(JUIteratorDef.java:51)
         at oracle.adf.model.binding.DCIteratorBindingDef.createExecutableBinding(DCIteratorBindingDef.java:277)
         at oracle.adf.model.binding.DCBindingContainerDef.createExecutables(DCBindingContainerDef.java:296)
         at oracle.adf.model.binding.DCBindingContainerDef.createBindingContainer(DCBindingContainerDef.java:425)
         at oracle.adf.model.binding.DCBindingContainerReference.createBindingContainer(DCBindingContainerReference.java:54)
         at oracle.adf.model.binding.DCBindingContainerReference.getBindingContainer(DCBindingContainerReference.java:44)
         at oracle.adf.model.BindingContext.get(BindingContext.java:483)
         at oracle.adf.model.BindingContext.findBindingContainer(BindingContext.java:313)
         at oracle.adf.model.BindingContext.findBindingContainerByPath(BindingContext.java:633)
         at oracle.adf.model.BindingRequestHandler.isPageViewable(BindingRequestHandler.java:268)
         at oracle.adf.model.BindingRequestHandler.beginRequest(BindingRequestHandler.java:169)
         at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:161)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.4.0) ].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:621)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.4.0) ].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:370)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.4.0) ].server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:871)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.4.0) ].server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:453)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.4.0) ].server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler.java:221)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.4.0) ].server.http.HttpRequestHandler.run(HttpRequestHandler.java:122)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.4.0) ].server.http.HttpRequestHandler.run(HttpRequestHandler.java:111)
         at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.4.0) ].util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
         at java.lang.Thread.run(Thread.java:595)
    ## Detail 0 ##
    oracle.jbo.JboException: JBO-29000: Bad version number in .class file
         Neplatná třída: oracle.srtutorial.datamodel.SRPublicServiceImpl
         Zavaděč: SRTutorial.web.SRTutorial:0.0.0
         Code-Source: /C:/OracleAS/j2ee/home/applications/SRTutorial/SRTutorial/WEB-INF/classes/
         Konfigurace: WEB-INF/classes/ in C:\OracleAS\j2ee\home\applications\SRTutorial\SRTutorial\WEB-INF\classes
         Závislá třída: oracle.jbo.common.java2.JDK2ClassLoader
         Zavaděč: adf.oracle.domain:10.1.3.1
         Code-Source: /C:/OracleAS/BC4J/lib/adfm.jar
         Konfigurace: <code-source> in /C:/OracleAS/j2ee/home/config/server.xml
         at oracle.jbo.pool.ResourcePool.createResource(ResourcePool.java:545)
         at oracle.jbo.common.ampool.ApplicationPoolImpl.prepareApplicationModule(ApplicationPoolImpl.java:2094)
         at oracle.jbo.common.ampool.ApplicationPoolImpl.doCheckout(ApplicationPoolImpl.java:1961)
         at oracle.jbo.common.ampool.ApplicationPoolImpl.useApplicationModule(ApplicationPoolImpl.java:2793)
         at oracle.jbo.common.ampool.SessionCookieImpl.useApplicationModule(SessionCookieImpl.java:453)
         at oracle.jbo.http.HttpSessionCookieImpl.useApplicationModule(HttpSessionCookieImpl.java:233)
         at oracle.jbo.common.ampool.SessionCookieImpl.useApplicationModule(SessionCookieImpl.java:424)
         at oracle.jbo.common.ampool.SessionCookieImpl.useApplicationModule(SessionCookieImpl.java:419)
         at oracle.adf.model.bc4j.DCJboDataControl.rebuildApplicationModule(DCJboDataControl.java:1517)
         at oracle.adf.model.bc4j.DCJboDataControl.beginRequest(DCJboDataControl.java:1381)
         at oracle.adf.model.binding.DCDataControlReference.getDataControl(DCDataControlReference.java:99)
         at oracle.adf.model.BindingContext.get(BindingContext.java:457)
         at oracle.adf.model.binding.DCUtil.findSpelObject(DCUtil.java:280)
         at oracle.adf.model.binding.DCUtil.findSpelObject(DCUtil.java:248)
         at oracle.adf.model.binding.DCUtil.findContextObject(DCUtil.java:383)
         at oracle.adf.model.binding.DCIteratorBinding.<init>(DCIteratorBinding.java:127)
         at oracle.jbo.uicli.binding.JUIteratorBinding.<init>(JUIteratorBinding.java:60)
         at oracle.jbo.uicli.binding.JUIteratorDef.createIterBinding(JUIteratorDef.java:87)
         at oracle.jbo.uicli.binding.JUIteratorDef.createIterBinding(JUIteratorDef.java:51)
         at oracle.adf.model.binding.DCIteratorBindingDef.createExecutableBinding(DCIteratorBindingDef.java:277)
         at oracle.adf.model.binding.DCBindingContainerDef.createExecutables(DCBindingContainerDef.java:296)
         at oracle.adf.model.binding.DCBindingContainerDef.createBindingContainer(DCBindingContainerDef.java:425)
         at oracle.adf.model.binding.DCBindingContainerReference.createBindingContainer(DCBindingContainerReference.java:54)
         at oracle.adf.model.binding.DCBindingContainerReference.getBindingContainer(DCBindingContainerReference.java:44)
         at oracle.adf.model.BindingContext.get(BindingContext.java:483)
         at oracle.adf.model.BindingContext.findBindingContainer(BindingContext.java:313)
         at oracle.adf.model.BindingContext.findBindingContainerByPath(BindingContext.java:633)
         at oracle.adf.model.BindingRequestHandler.isPageViewable(BindingRequestHandler.java:268)
         at oracle.adf.model.BindingRequestHandler.beginRequest(BindingRequestHandler.java:169)
         at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:161)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.4.0) ].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:621)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.4.0) ].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:370)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.4.0) ].server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:871)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.4.0) ].server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:453)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.4.0) ].server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler.java:221)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.4.0) ].server.http.HttpRequestHandler.run(HttpRequestHandler.java:122)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.4.0) ].server.http.HttpRequestHandler.run(HttpRequestHandler.java:111)
         at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.4.0) ].util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
         at java.lang.Thread.run(Thread.java:595)
    ## Detail 0 ##
    oracle.classloader.util.AnnotatedClassFormatError: Bad version number in .class file
         Neplatná třída: oracle.srtutorial.datamodel.SRPublicServiceImpl
         Zavaděč: SRTutorial.web.SRTutorial:0.0.0
         Code-Source: /C:/OracleAS/j2ee/home/applications/SRTutorial/SRTutorial/WEB-INF/classes/
         Konfigurace: WEB-INF/classes/ in C:\OracleAS\j2ee\home\applications\SRTutorial\SRTutorial\WEB-INF\classes
         Závislá třída: oracle.jbo.common.java2.JDK2ClassLoader
         Zavaděč: adf.oracle.domain:10.1.3.1
         Code-Source: /C:/OracleAS/BC4J/lib/adfm.jar
         Konfigurace: <code-source> in /C:/OracleAS/j2ee/home/config/server.xml
         at oracle.classloader.PolicyClassLoader.findLocalClass (PolicyClassLoader.java:1462) [C:/OracleAS/j2ee/home/lib/pcl.jar (from system property java.class.path), by sun.misc.Launcher$AppClassLoader@12700959]
         at oracle.classloader.SearchPolicy$FindLocal.getClass (SearchPolicy.java:167) [C:/OracleAS/j2ee/home/lib/pcl.jar (from system property java.class.path), by sun.misc.Launcher$AppClassLoader@12700959]
         at oracle.classloader.SearchSequence.getClass (SearchSequence.java:119) [C:/OracleAS/j2ee/home/lib/pcl.jar (from system property java.class.path), by sun.misc.Launcher$AppClassLoader@12700959]
         at oracle.classloader.PolicyClassLoader.internalLoadClass (PolicyClassLoader.java:1674) [C:/OracleAS/j2ee/home/lib/pcl.jar (from system property java.class.path), by sun.misc.Launcher$AppClassLoader@12700959]
         at oracle.classloader.PolicyClassLoader.loadClass (PolicyClassLoader.java:1635) [C:/OracleAS/j2ee/home/lib/pcl.jar (from system property java.class.path), by sun.misc.Launcher$AppClassLoader@12700959]
         at oracle.classloader.PolicyClassLoader.loadClass (PolicyClassLoader.java:1620) [C:/OracleAS/j2ee/home/lib/pcl.jar (from system property java.class.path), by sun.misc.Launcher$AppClassLoader@12700959]
         at java.lang.ClassLoader.loadClassInternal (ClassLoader.java:319) [jre bootstrap, by jre.bootstrap:1.5.0_06]
         at java.lang.Class.forName0 (Native method) [unknown, by unknown]
         at java.lang.Class.forName (Class.java:242) [jre bootstrap, by jre.bootstrap:1.5.0_06]
         at oracle.jbo.common.java2.JDK2ClassLoader.loadClassForName (JDK2ClassLoader.java:38) [C:/OracleAS/BC4J/lib/adfm.jar (from <code-source> in /C:/OracleAS/j2ee/home/config/server.xml), by adf.oracle.domain:10.1.3.1]
         at oracle.jbo.common.JBOClass.forName (JBOClass.java:164) [C:/OracleAS/BC4J/lib/adfm.jar (from <code-source> in /C:/OracleAS/j2ee/home/config/server.xml), by adf.oracle.domain:10.1.3.1]
         at oracle.jbo.common.JBOClass.findCustomClass (JBOClass.java:177) [C:/OracleAS/BC4J/lib/adfm.jar (from <code-source> in /C:/OracleAS/j2ee/home/config/server.xml), by adf.oracle.domain:10.1.3.1]
         at oracle.jbo.server.ApplicationModuleDefImpl.loadFromXML (ApplicationModuleDefImpl.java:836) [C:/OracleAS/BC4J/lib/bc4jmt.jar (from <code-source> in /C:/OracleAS/j2ee/home/config/server.xml), by adf.oracle.domain:10.1.3.1]
         at oracle.jbo.server.ApplicationModuleDefImpl.loadFromXML (ApplicationModuleDefImpl.java:770) [C:/OracleAS/BC4J/lib/bc4jmt.jar (from <code-source> in /C:/OracleAS/j2ee/home/config/server.xml), by adf.oracle.domain:10.1.3.1]
         at oracle.jbo.server.MetaObjectManager.loadFromXML (MetaObjectManager.java:534) [C:/OracleAS/BC4J/lib/bc4jmt.jar (from <code-source> in /C:/OracleAS/j2ee/home/config/server.xml), by adf.oracle.domain:10.1.3.1]
         at oracle.jbo.mom.DefinitionManager.loadLazyDefinitionObject (DefinitionManager.java:579) [C:/OracleAS/BC4J/lib/adfm.jar (from <code-source> in /C:/OracleAS/j2ee/home/config/server.xml), by adf.oracle.domain:10.1.3.1]
         at oracle.jbo.mom.DefinitionManager.findDefinitionObject (DefinitionManager.java:441) [C:/OracleAS/BC4J/lib/adfm.jar (from <code-source> in /C:/OracleAS/j2ee/home/config/server.xml), by adf.oracle.domain:10.1.3.1]
         at oracle.jbo.mom.DefinitionManager.findDefinitionObject (DefinitionManager.java:374) [C:/OracleAS/BC4J/lib/adfm.jar (from <code-source> in /C:/OracleAS/j2ee/home/config/server.xml), by adf.oracle.domain:10.1.3.1]
         at oracle.jbo.mom.DefinitionManager.findDefinitionObject (DefinitionManager.java:356) [C:/OracleAS/BC4J/lib/adfm.jar (from <code-source> in /C:/OracleAS/j2ee/home/config/server.xml), by adf.oracle.domain:10.1.3.1]
         at oracle.jbo.server.MetaObjectManager.findMetaObject (MetaObjectManager.java:700) [C:/OracleAS/BC4J/lib/bc4jmt.jar (from <code-source> in /C:/OracleAS/j2ee/home/config/server.xml), by adf.oracle.domain:10.1.3.1]
         at oracle.jbo.server.ApplicationModuleDefImpl.findDefObject (ApplicationModuleDefImpl.java:232) [C:/OracleAS/BC4J/lib/bc4jmt.jar (from <code-source> in /C:/OracleAS/j2ee/home/config/server.xml), by adf.oracle.domain:10.1.3.1]
         at oracle.jbo.server.ApplicationModuleImpl.createRootApplicationModule (ApplicationModuleImpl.java:401) [C:/OracleAS/BC4J/lib/bc4jmt.jar (from <code-source> in /C:/OracleAS/j2ee/home/config/server.xml), by adf.oracle.domain:10.1.3.1]
         at oracle.jbo.server.ApplicationModuleHomeImpl.create (ApplicationModuleHomeImpl.java:91) [C:/OracleAS/BC4J/lib/bc4jmt.jar (from <code-source> in /C:/OracleAS/j2ee/home/config/server.xml), by adf.oracle.domain:10.1.3.1]
         at oracle.jbo.common.ampool.DefaultConnectionStrategy.createApplicationModule (DefaultConnectionStrategy.java:139) [C:/OracleAS/BC4J/lib/bc4jct.jar (from <code-source> in /C:/OracleAS/j2ee/home/config/server.xml), by adf.oracle.domain:10.1.3.1]
         at oracle.jbo.common.ampool.DefaultConnectionStrategy.createApplicationModule (DefaultConnectionStrategy.java:80) [C:/OracleAS/BC4J/lib/bc4jct.jar (from <code-source> in /C:/OracleAS/j2ee/home/config/server.xml), by adf.oracle.domain:10.1.3.1]
         at oracle.jbo.common.ampool.ApplicationPoolImpl.instantiateResource (ApplicationPoolImpl.java:2468) [C:/OracleAS/BC4J/lib/bc4jct.jar (from <code-source> in /C:/OracleAS/j2ee/home/config/server.xml), by adf.oracle.domain:10.1.3.1]
         at oracle.jbo.pool.ResourcePool.createResource (ResourcePool.java:536) [C:/OracleAS/BC4J/lib/bc4jct.jar (from <code-source> in /C:/OracleAS/j2ee/home/config/server.xml), by adf.oracle.domain:10.1.3.1]
         at oracle.jbo.common.ampool.ApplicationPoolImpl.prepareApplicationModule (ApplicationPoolImpl.java:2094) [C:/OracleAS/BC4J/lib/bc4jct.jar (from <code-source> in /C:/OracleAS/j2ee/home/config/server.xml), by adf.oracle.domain:10.1.3.1]
         at oracle.jbo.common.ampool.ApplicationPoolImpl.doCheckout (ApplicationPoolImpl.java:1961) [C:/OracleAS/BC4J/lib/bc4jct.jar (from <code-source> in /C:/OracleAS/j2ee/home/config/server.xml), by adf.oracle.domain:10.1.3.1]
         at oracle.jbo.common.ampool.ApplicationPoolImpl.useApplicationModule (ApplicationPoolImpl.java:2793) [C:/OracleAS/BC4J/lib/bc4jct.jar (from <code-source> in /C:/OracleAS/j2ee/home/config/server.xml), by adf.oracle.domain:10.1.3.1]
         at oracle.jbo.common.ampool.SessionCookieImpl.useApplicationModule (SessionCookieImpl.java:453) [C:/OracleAS/BC4J/lib/bc4jct.jar (from <code-source> in /C:/OracleAS/j2ee/home/config/server.xml), by adf.oracle.domain:10.1.3.1]
         at oracle.jbo.http.HttpSessionCookieImpl.useApplicationModule (HttpSessionCookieImpl.java:233) [C:/OracleAS/BC4J/lib/adfmweb.jar (from <code-source> in /C:/OracleAS/j2ee/home/config/server.xml), by adf.oracle.domain:10.1.3.1]
         at oracle.jbo.common.ampool.SessionCookieImpl.useApplicationModule (SessionCookieImpl.java:424) [C:/OracleAS/BC4J/lib/bc4jct.jar (from <code-source> in /C:/OracleAS/j2ee/home/config/server.xml), by adf.oracle.domain:10.1.3.1]
         at oracle.jbo.common.ampool.SessionCookieImpl.useApplicationModule (SessionCookieImpl.java:419) [C:/OracleAS/BC4J/lib/bc4jct.jar (from <code-source> in /C:/OracleAS/j2ee/home/config/server.xml), by adf.oracle.domain:10.1.3.1]
         at oracle.adf.model.bc4j.DCJboDataControl.rebuildApplicationModule (DCJboDataControl.java:1517) [C:/OracleAS/BC4J/lib/adfm.jar (from <code-source> in /C:/OracleAS/j2ee/home/config/server.xml), by adf.oracle.domain:10.1.3.1]
         at oracle.adf.model.bc4j.DCJboDataControl.beginRequest (DCJboDataControl.java:1381) [C:/OracleAS/BC4J/lib/adfm.jar (from <code-source> in /C:/OracleAS/j2ee/home/config/server.xml), by adf.oracle.domain:10.1.3.1]
         at oracle.adf.model.binding.DCDataControlReference.getDataControl (DCDataControlReference.java:99) [C:/OracleAS/BC4J/lib/adfm.jar (from <code-source> in /C:/OracleAS/j2ee/home/config/server.xml), by adf.oracle.domain:10.1.3.1]
         at oracle.adf.model.BindingContext.get (BindingContext.java:457) [C:/OracleAS/BC4J/lib/adfm.jar (from <code-source> in /C:/OracleAS/j2ee/home/config/server.xml), by adf.oracle.domain:10.1.3.1]
         at oracle.adf.model.binding.DCUtil.findSpelObject (DCUtil.java:280) [C:/OracleAS/BC4J/lib/adfm.jar (from <code-source> in /C:/OracleAS/j2ee/home/config/server.xml), by adf.oracle.domain:10.1.3.1]
         at oracle.adf.model.binding.DCUtil.findSpelObject (DCUtil.java:248) [C:/OracleAS/BC4J/lib/adfm.jar (from <code-source> in /C:/OracleAS/j2ee/home/config/server.xml), by adf.oracle.domain:10.1.3.1]
         at oracle.adf.model.binding.DCUtil.findContextObject (DCUtil.java:383) [C:/OracleAS/BC4J/lib/adfm.jar (from <code-source> in /C:/OracleAS/j2ee/home/config/server.xml), by adf.oracle.domain:10.1.3.1]
         at oracle.adf.model.binding.DCIteratorBinding.<init> (DCIteratorBinding.java:127) [C:/OracleAS/BC4J/lib/adfm.jar (from <code-source> in /C:/OracleAS/j2ee/home/config/server.xml), by adf.oracle.domain:10.1.3.1]
         at oracle.jbo.uicli.binding.JUIteratorBinding.<init> (JUIteratorBinding.java:60) [C:/OracleAS/BC4J/lib/adfm.jar (from <code-source> in /C:/OracleAS/j2ee/home/config/server.xml), by adf.oracle.domain:10.1.3.1]
         at oracle.jbo.uicli.binding.JUIteratorDef.createIterBinding (JUIteratorDef.java:87) [C:/OracleAS/BC4J/lib/adfm.jar (from <code-source> in /C:/OracleAS/j2ee/home/config/server.xml), by adf.oracle.domain:10.1.3.1]
         at oracle.jbo.uicli.binding.JUIteratorDef.createIterBinding (JUIteratorDef.java:51) [C:/OracleAS/BC4J/lib/adfm.jar (from <code-source> in /C:/OracleAS/j2ee/home/config/server.xml), by adf.oracle.domain:10.1.3.1]
         at oracle.adf.model.binding.DCIteratorBindingDef.createExecutableBinding (DCIteratorBindingDef.java:277) [C:/OracleAS/BC4J/lib/adfm.jar (from <code-source> in /C:/OracleAS/j2ee/home/config/server.xml), by adf.oracle.domain:10.1.3.1]
         at oracle.adf.model.binding.DCBindingContainerDef.createExecutables (DCBindingContainerDef.java:296) [C:/OracleAS/BC4J/lib/adfm.jar (from <code-source> in /C:/OracleAS/j2ee/home/config/server.xml), by adf.oracle.domain:10.1.3.1]
         at oracle.adf.model.binding.DCBindingContainerDef.createBindingContainer (DCBindingContainerDef.java:425) [C:/OracleAS/BC4J/lib/adfm.jar (from <code-source> in /C:/OracleAS/j2ee/home/config/server.xml), by adf.oracle.domain:10.1.3.1]
         at oracle.adf.model.binding.DCBindingContainerReference.createBindingContainer (DCBindingContainerReference.java:54) [C:/OracleAS/BC4J/lib/adfm.jar (from <code-source> in /C:/OracleAS/j2ee/home/config/server.xml), by adf.oracle.domain:10.1.3.1]
         at oracle.adf.model.binding.DCBindingContainerReference.getBindingContainer (DCBindingContainerReference.java:44) [C:/OracleAS/BC4J/lib/adfm.jar (from <code-source> in /C:/OracleAS/j2ee/home/config/server.xml), by adf.oracle.domain:10.1.3.1]
         at oracle.adf.model.BindingContext.get (BindingContext.java:483) [C:/OracleAS/BC4J/lib/adfm.jar (from <code-source> in /C:/OracleAS/j2ee/home/config/server.xml), by adf.oracle.domain:10.1.3.1]
         at oracle.adf.model.BindingContext.findBindingContainer (BindingContext.java:313) [C:/OracleAS/BC4J/lib/adfm.jar (from <code-source> in /C:/OracleAS/j2ee/home/config/server.xml), by adf.oracle.domain:10.1.3.1]
         at oracle.adf.model.BindingContext.findBindingContainerByPath (BindingContext.java:633) [C:/OracleAS/BC4J/lib/adfm.jar (from <code-source> in /C:/OracleAS/j2ee/home/config/server.xml), by adf.oracle.domain:10.1.3.1]
         at oracle.adf.model.BindingRequestHandler.isPageViewable (BindingRequestHandler.java:268) [C:/OracleAS/BC4J/lib/adfm.jar (from <code-source> in /C:/OracleAS/j2ee/home/config/server.xml), by adf.oracle.domain:10.1.3.1]
         at oracle.adf.model.BindingRequestHandler.beginRequest (BindingRequestHandler.java:169) [C:/OracleAS/BC4J/lib/adfm.jar (from <code-source> in /C:/OracleAS/j2ee/home/config/server.xml), by adf.oracle.domain:10.1.3.1]
         at oracle.adf.model.servlet.ADFBindingFilter.doFilter (ADFBindingFilter.java:161) [C:/OracleAS/BC4J/lib/adfm.jar (from <code-source> in /C:/OracleAS/j2ee/home/config/server.xml), by adf.oracle.domain:10.1.3.1]
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.4.0) ].server.http.ServletRequestDispatcher.invoke (ServletRequestDispatcher.java:621) [C:/OracleAS/j2ee/home/lib/oc4j-internal.jar (from <code-source> in META-INF/boot.xml in C:\OracleAS\j2ee\home\oc4j.jar), by oc4j:10.1.3]
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.4.0) ].server.http.ServletRequestDispatcher.forwardInternal (ServletRequestDispatcher.java:370) [C:/OracleAS/j2ee/home/lib/oc4j-internal.jar (from <code-source> in META-INF/boot.xml in C:\OracleAS\j2ee\home\oc4j.jar), by oc4j:10.1.3]
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.4.0) ].server.http.HttpRequestHandler.doProcessRequest (HttpRequestHandler.java:871) [C:/OracleAS/j2ee/home/lib/oc4j-internal.jar (from <code-source> in META-INF/boot.xml in C:\OracleAS\j2ee\home\oc4j.jar), by oc4j:10.1.3]
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.4.0) ].server.http.HttpRequestHandler.processRequest (HttpRequestHandler.java:453) [C:/OracleAS/j2ee/home/lib/oc4j-internal.jar (from <code-source> in META-INF/boot.xml in C:\OracleAS\j2ee\home\oc4j.jar), by oc4j:10.1.3]
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.4.0) ].server.http.HttpRequestHandler.serveOneRequest (HttpRequestHandler.java:221) [C:/OracleAS/j2ee/home/lib/oc4j-internal.jar (from <code-source> in META-INF/boot.xml in C:\OracleAS\j2ee\home\oc4j.jar), by oc4j:10.1.3]
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.4.0) ].server.http.HttpRequestHandler.run (HttpRequestHandler.java:122) [C:/OracleAS/j2ee/home/lib/oc4j-internal.jar (from <code-source> in META-INF/boot.xml in C:\OracleAS\j2ee\home\oc4j.jar), by oc4j:10.1.3]
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.4.0) ].server.http.HttpRequestHandler.run (HttpRequestHandler.java:111) [C:/OracleAS/j2ee/home/lib/oc4j-internal.jar (from <code-source> in META-INF/boot.xml in C:\OracleAS\j2ee\home\oc4j.jar), by oc4j:10.1.3]
         at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run (ServerSocketReadHandler.java:260) [C:/OracleAS/j2ee/home/lib/oc4j-internal.jar (from <code-source> in META-INF/boot.xml in C:\OracleAS\j2ee\home\oc4j.jar), by oc4j:10.1.3]
         at com.evermind[Oracle Containers for J2EE 10g (10.1.3.4.0) ].util.ReleasableResourcePooledExecutor$MyWorker.run (ReleasableResourcePooledExecutor.java:303) [C:/OracleAS/j2ee/home/lib/oc4j-internal.jar (from <code-source> in META-INF/boot.xml in C:\OracleAS\j2ee\home\oc4j.jar), by oc4j:10.1.3]
         at java.lang.Thread.run (Thread.java:595) [jre bootstrap, by jre.bootstrap:1.5.0_06]

  • ADF Javascript problem: cannot get id of an component

    hi, am currently reading and executing examples from ADF faces Web UI Developers Guide for jdeveloper 11g.
    i am trying to execute example 3-7
    I have a <af:commandButton> component , whose id i want to display in an alert box.
    However i am unable to display it
    here is the sample code i made up:
    <f:view>
    <af:document title="hello from component" >
    <af:form >
    <af:commandButton text="show id" id="cmdbutton">
    <af:clientListener method="sayHello" type="action"/>
    </af:commandButton>
    </af:form>
    <f:facet name="metaContainer">
    <trh:script>
    <f:verbatim>
    function sayHello(actionEvent)
    var component= actionEvent.getSource();
    //Get the ID for the component
    var id = component.getId ;
    alert("Hello from " + id);
    </f:verbatim>
    </trh:script>
    </f:facet>
    </af:document>
    </f:view>
    Problem 1: when i run it, the alert box displays: Hello from undefined . i was expecting Hello from cmdButton
    Problem 2: in the line var id = component.getId, if i modify it as var id = component.getId() (just added the parentheses after method getId)
    no alert box is displayed. in javascript when a method accepts no parameters, its ok to call it with or without parentheses. why no alert
    box displayed when i add parentheses to getId.

    in javascript calling a method with or without parentheses is OK , then why the alert box in one case and no alert box in another?
    Because your assumption is wrong. Calling a function can only be done with the parenthesis. When you're not using them then you get a pointer on the function. For example:
    MyNamespace = new Object();
    MyNamespace.myUtilFunction = function()
        return "Hello world";
    alert(MyNamespace.myUtilFunction);
    alert(MyNamespace.myUtilFunction());The first alert will show something like
    "function()
    return "Hello world";
    While the second will print "Hello world". Furthermore, if a function does not exists, like "MyNamespace.myUnexistingFunction" then the first alert would show "undefined" while the second would never even pop as there would be an "MyNamespace.myUnexistingFunction is undefined" error. Consequently, if the alert is not showing with the parenthesis then I guess getId is not a valid function on UIComponent which is possible, I assumed there would be one because there's an id property, but then again, that id would not be very useful on the client side compared to the client id.
    Regards,
    ~ Simon

  • ADF Login problem

    Hi,
    I have implemented ADF Security along with a login bean and a home managed bean according to Frank Nimphius's article in the Oracle Magazine.
    Problems:
    1. In design view the login link is visible, but not in the browser (Firefox vers. 19).
    2. Only the logout link is visible
    3. When trying to logout the current page only refreshes
    Login bean
    package demo.view;
    import java.io.IOException;
    import java.util.Map;
    import javax.faces.application.FacesMessage;
    import javax.faces.context.ExternalContext;
    import javax.faces.context.FacesContext;
    import javax.security.auth.Subject;
    import javax.security.auth.callback.CallbackHandler;
    import javax.security.auth.login.FailedLoginException;
    import javax.security.auth.login.LoginException;
    import javax.servlet.RequestDispatcher;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import oracle.adf.share.ADFContext;
    import oracle.adf.view.rich.event.DialogEvent;
    import weblogic.security.SimpleCallbackHandler;
    import weblogic.security.URLCallbackHandler;
    import weblogic.security.services.Authentication;
    import weblogic.servlet.security.ServletAuthentication;
    public class LoginBean {
        String _username = null;
        String _password = null;
        public static String USERNAMETOKEN = "_____demoOnlyUsernameAttrString___________";
        public static String PASSWORDTOKEN = "_____demoOnlyPasswordAttrString___________";
        public LoginBean() {
            super();
        public void setUsername(String _username) {
            this._username = _username;
        public String getUsername() {
            return _username;
        public void setPassword(String _password) {
            this._password = _password;
        public String getPassword() {
            return _password;
      public void onLoginAction(DialogEvent dialogEvent) {
          if (dialogEvent.getOutcome()== DialogEvent.Outcome.ok ){
            doLogin();
          else{
            //cancel, do nothing
      private String doLogin() {
          String un = _username;
          byte[] pw = _password.getBytes();
          FacesContext ctx = FacesContext.getCurrentInstance();
          HttpServletRequest request = (HttpServletRequest)ctx.getExternalContext().getRequest();
          try {         
              CallbackHandler handler = new URLCallbackHandler(un,pw);
              Subject mySubject = weblogic.security.services.Authentication.login(handler);
              weblogic.servlet.security.ServletAuthentication.runAs(mySubject, request);
              ServletAuthentication.generateNewSessionID(request);
              //save username and password. Note that in a real application this is
              //*NOT* what you should do unencrypted. Note that this is a demo
              //Store username , password in session for later use
              //when connecting to Twitter
              ADFContext adfctx = ADFContext.getCurrent();
              Map sessionScope = adfctx.getSessionScope();
              sessionScope.put(this.USERNAMETOKEN, un);
              sessionScope.put(this.PASSWORDTOKEN, new String(pw));
                String loginUrl;
                loginUrl = "/adfAuthentication?success_url=/faces" + ctx.getViewRoot().getViewId();
              HttpServletResponse response = (HttpServletResponse)ctx.getExternalContext().getResponse();
              sendForward(request, response, loginUrl);
          } catch (FailedLoginException fle) {
              FacesMessage msg =
                  new FacesMessage(FacesMessage.SEVERITY_ERROR, "Incorrect Username or Password",
                                   "An incorrect Username or Password" +
                                   " was specified");
              ctx.addMessage("d2:it35", msg);
          } catch (LoginException le) {
              reportUnexpectedLoginError("LoginException", le);
          return null;
      private void sendForward(HttpServletRequest request,
                               HttpServletResponse response, String forwardUrl) {
          FacesContext ctx = FacesContext.getCurrentInstance();
          RequestDispatcher dispatcher = request.getRequestDispatcher(forwardUrl);
          try {
              dispatcher.forward(request, response);
          } catch (ServletException se) {
              reportUnexpectedLoginError("ServletException", se);
          } catch (IOException ie) {
              reportUnexpectedLoginError("IOException", ie);
          ctx.responseComplete();
      private void reportUnexpectedLoginError(String errType, Exception e) {
          FacesMessage msg =
              new FacesMessage(FacesMessage.SEVERITY_ERROR, "Unexpected error during login",
                               "Unexpected error during login (" + errType +
                               "), please consult logs for detail");
          FacesContext.getCurrentInstance().addMessage("d2:it35", msg);
          e.printStackTrace();
        public String logout() {
            FacesContext ctx = FacesContext.getCurrentInstance(); 
            ExternalContext ectx = ctx.getExternalContext();
            String logoutUrl = "faces" + ctx.getViewRoot().getViewId();
            ((HttpServletRequest)ectx.getRequest()).getSession().invalidate();
            try {
                ectx.redirect(logoutUrl);
            } catch (IOException e) {
                e.printStackTrace();
            return null;
    }Home managed bean
    package demo.view;
    import java.io.IOException;
    import java.util.Iterator;
    import java.util.List;
    import java.util.Map;
    import javax.el.ELContext;
    import javax.el.ExpressionFactory;
    import javax.el.ValueExpression;
    import javax.faces.context.ExternalContext;
    import javax.faces.context.FacesContext;
    import javax.faces.event.ActionEvent;
    import oracle.adf.model.binding.DCIteratorBinding;
    import oracle.adf.view.rich.component.rich.RichPopup;
    import oracle.adf.view.rich.component.rich.data.RichTree;
    import oracle.adf.view.rich.component.rich.layout.RichPanelGroupLayout;
    import oracle.adf.view.rich.component.rich.nav.RichCommandImageLink;
    import oracle.adf.view.rich.context.AdfFacesContext;
    import oracle.jbo.Key;
    import oracle.jbo.uicli.binding.JUCtrlHierBinding;
    import oracle.jbo.uicli.binding.JUCtrlHierNodeBinding;
    import oracle.jbo.uicli.binding.JUCtrlHierTypeBinding;
    import oracle.jbo.uicli.binding.JUIteratorBinding;
    import org.apache.myfaces.trinidad.component.UIXSwitcher;
    import org.apache.myfaces.trinidad.event.SelectionEvent;
    import org.apache.myfaces.trinidad.model.CollectionModel;
    import org.apache.myfaces.trinidad.model.RowKeySet;
    public class HomeManagedBean {
        private RichTree locationsTree;
        private UIXSwitcher formSwitcher;
        private RichPanelGroupLayout formPanelGroup;
        private RichPopup popupP1;
        public HomeManagedBean() {
        public void setLocationsTree(RichTree locationsTree) {
            this.locationsTree = locationsTree;
        public RichTree getLocationsTree() {
            return locationsTree;
       * Custom managed bean method that takes a SelectEvent input argument to generically
       * set the current row corresponding to the selected row in the tree. Note that this
       * method is a way to replace the "makeCurrent" EL expression (#{bindings.<tree binding>.
       * treeModel.makeCurrent}that Oracle JDeveloper adds to the tree component SelectionListener
       * property when dragging a collection from the Data Controls panel. Using this custom
       * selection listener allows developers to add pre- and post processing instructions. For
       * example, you may want to enforce PPR on a specific item after a new tree node has been
       * selected. This methods performs the following steps
       * i.   get access to the tree component
       * ii.  get access to the ADF tree binding
       * iii. set the current row on the ADF binding
       * iv.  get the information about target iterators to synchronize
       * v.   synchronize target iterator
       * @param selectionEvent object passed in by ADF Faces when configuring this method to
       * become the selection listener
       * @author Frank Nimphius
      public void onTreeSelect(SelectionEvent selectionEvent) {
        /* REPLACES */
        //#{bindings.allLocations.treeModel.makeCurrent}
       /* custom pre processing goes here */
      //get the tree information from the event object
      RichTree tree1 = (RichTree) selectionEvent.getSource();
      //in a single selection case ( a setting on the tree component ) the added set only
      //has a single entry. If there are more then using this method may not be desirable.
      //Implicitly we turn the multi select in a single select later, ignoring all set
      //entries than the first
      RowKeySet rks2 = selectionEvent.getAddedSet();
      //iterate over the contained keys. Though for a single selection use case we only expect
      //one entry in here
      Iterator rksIterator = rks2.iterator();
      //support single row selection case
      if (rksIterator.hasNext()){
        //get the tree node key, which is a List of path entries describing the
        //location of the node in the tree including its parents nodes
        List key = (List)rksIterator.next();
       //get the ADF tree  binding to work with
        JUCtrlHierBinding treeBinding = null;
        //The Trinidad CollectionModel is used to provide data to trees and tables. In the
        //ADF binding case, it contains the tree binding as wrapped data
        treeBinding = (JUCtrlHierBinding) ((CollectionModel)tree1.getValue()).getWrappedData();
        //find the node identified by the node path from the ADF binding layer. Note that
        //we don't need to know about the name of the tree binding in the PageDef file because
        //all information is provided
        JUCtrlHierNodeBinding nodeBinding = nodeBinding = treeBinding.findNodeByKeyPath(key);
        //the current row is set on the iterator binding. Because all bindings have an internal
        //reference to their iterator usage, the iterator can be queried from the ADF binding
        //object
        DCIteratorBinding _treeIteratorBinding = null;
        _treeIteratorBinding = treeBinding.getDCIteratorBinding();
        Key rowKey = nodeBinding.getRowKey();
        JUIteratorBinding iterator = nodeBinding.getIteratorBinding();
        iterator.setCurrentRowWithKey(rowKey.toStringFormat(true));
        //get selected node type information
        JUCtrlHierTypeBinding typeBinding =  nodeBinding.getHierTypeBinding();
        // The tree node rule may have a target iterator defined. Target iterators are
        // configured using the Target Data Source entry in the tree node edit dialog
        // and allow developers to declaratively synchronize an independent iterator
        // binding with the node selection in the tree.
        String targetIteratorSpelString = typeBinding.getTargetIterator();     
        //chances are that the target iterator option is not configured. We avoid
        //NPE by checking this condition
        if (targetIteratorSpelString != null && !targetIteratorSpelString.isEmpty()) {
          //resolve SPEL string for target iterator
          DCIteratorBinding targetIterator = resolveTargetIterWithSpel(targetIteratorSpelString);
          //synchronize the row in the target iterator
          targetIterator.setCurrentRowWithKey(rowKey.toStringFormat(true));
        /********************* DISPLAY INPUT FORM FOR SELECTED NODE **********************/
        //get the name of the selectected tree node object. In this sample the value is
        //adf.sample.model.DepartmentsView,adf.sample.model.EmployeesView or
        //adf.sample.model.LocationsView
        String selectedNodeObjectRef = typeBinding.getStructureDefName();
        //write selected node object reference to session
        AdfFacesContext adfFacesCtx = AdfFacesContext.getCurrentInstance();
        Map viewScope = adfFacesCtx.getViewScope();
        viewScope.put("nodeRef",selectedNodeObjectRef);
        //refresh form display
        adfFacesCtx.addPartialTarget(this.getFormPanelGroup());
       * Helper method to resolve EL expression into DCIteratorBinding instance
       * @param spelExpr the SPEL expression starting with ${...}
       * @return DCIteratorBinding instance
      private DCIteratorBinding resolveTargetIterWithSpel(String spelExpr){
       FacesContext fctx = FacesContext.getCurrentInstance();
       ELContext elctx = fctx.getELContext();
       ExpressionFactory elFactory = fctx.getApplication().getExpressionFactory();
       ValueExpression valueExpr = elFactory.createValueExpression(elctx, spelExpr,Object.class);
       DCIteratorBinding dciter = (DCIteratorBinding) valueExpr.getValue(elctx);  
       return dciter;
        public void setFormPanelGroup(RichPanelGroupLayout formPanelGroup) {
            this.formPanelGroup = formPanelGroup;
        public RichPanelGroupLayout getFormPanelGroup() {
            return formPanelGroup;
        //based on the current state of the login link,
        //log user in or out
        public void onLoginLogout(ActionEvent actionEvent) {
            RichCommandImageLink rcil = (RichCommandImageLink) actionEvent.getComponent();
            String commandLinkIcon = rcil.getIcon();
            if (commandLinkIcon.indexOf("glbl_login_msg.gif") >0){
              //login
              RichPopup.PopupHints hints = new RichPopup.PopupHints();
              popupP1.show(hints);
            else{
              //logout        
              FacesContext fctx = FacesContext.getCurrentInstance();
              ExternalContext ectx = fctx.getExternalContext();
                try {
                    ectx.redirect("/adfAuthentication?logout=true&end_url=/faces/home.jspx");
                } catch (IOException e) {
                    e.printStackTrace();
        public void setPopupP1(RichPopup popupP1) {
            this.popupP1 = popupP1;
        public RichPopup getPopupP1() {
            return popupP1;
    }Source code in home page
    <af:commandImageLink text="Logout" id="commandImageLink1"
                                                              icon="#{resource['images:glbl_logout.gif']}"
                                                         rendered="#{securityContext.authenticated}" partialSubmit="true"
                                                         immediate="false"
                                                              inlineStyle="font-family:Arial, Helvetica, sans-serif; font-size:11px; color:White;"
                                                                 action="#{LoginBean.logout}"/>
                                         <af:commandImageLink text="Login" id="cil1"
                                                              icon="#{resource['images:glbl_login_msg.gif']}"
                                                         rendered="#{!securityContext.authenticated}"
                                                              inlineStyle="font-family:Arial, Helvetica, sans-serif; font-size:11px; color:White;"
                                                              action="#{LoginBean.toString}">
                                        <af:showPopupBehavior popupId="p1" triggerType="action" align="startAfter"
                                                              alignId="cil1"/>
                                    </af:commandImageLink>
                                    <af:popup id="p1" binding="#{HomeManagedBean.popupP1}">
                                        <af:dialog id="d2" title="Please Login" type="okCancel" closeIconVisible="false"
                                                   modal="true" stretchChildren="none"
                                                   dialogListener="#{LoginBean.onLoginAction}">
                                            <af:panelFormLayout id="pfl5">
                                                <af:inputText label="Username" id="it34" columns="20"
                                                              value="#{LoginBean.username}"/>
                                                <af:inputText label="Password" id="it35" secret="true" columns="20"
                                                              value="#{LoginBean.password}"/>
                                                <af:message id="m2" for="it35" messageType="error"/>
                                            </af:panelFormLayout>
                                        </af:dialog>
                                    </af:popup>Other settings:
    1. No welcome page set in web.xml
    2. No redirect page set in jazn-data.xml
    3. Users, Enterprise and application roles set in ADF Security
    4. Managed Beans registered in adfc-config.xml
    Help greatly appreciated!

    Without going through all the code:
    the visibility of the links depends on
    logout:
    rendered="#{securityContext.authenticated}"
    login:
    rendered="#{!securityContext.authenticated}"This means, if you see the logout link, but not the loging link, the framework assumes that you are logged in already.
    Investigate in this direction.
    Timo

  • Master-Detail commit problem

    I have master detail scenario. I have two forms. First one for the master and the second for the detail. I am first inserting the master data and then i navigate to the other form to insert the detail data. If i make commit from the second form it works just fine, but i need to go back(using JSF navigation) to the first form and commit from there. When I'm doing that i get the following error: JBO-27102: Attempt to access dead view row
    I need solution to this problem
    Thanks
    Edited by: user2136329 on Dec 3, 2009 3:44 AM

    JBO-27102: DeadViewRowAccessExceptionReason: Trying to access a ViewRow which is part of an obsolete/invalid collection. This could happen if a reference to the ViewRow is held by some business logic while the containing view object was removed.
    Solution: Find the referenced ViewRow either by re-querying or using findByKey methods to get a valid reference to the ViewRow.
    >
    How are you creating your detail row - when you are navigating back are you doing a form submit to make sure that the data is submitted to view object..? If yes, try to get the handle to detail viewobject instance to check it holds new rows before commit..?
    ~Krithika

  • JDeveloper ADF Faces Problem: Expression language

    Error(): Expression Language not supported in compile time attribute test
    I have followed an ADF Faces example from the Oracle Website. Concerning a database + ADF Faces
    http://www.oracle.com/technology/pub/articles/cioroianu_jsfadf_v4.html
    I followed the tutorial correct but everytime i try to run it. I get following error:
    Error(): Expression Language not supported in compile time attribute test
    It has something to do with following line of code
    <c:if test="${subscriber == null || !subscriber.loggedIn}">
    The error appears on every page where "<c:" appears.
    I have imported the right class library
    <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
    Does anybody have any idea what i can do?

    Dear Tim,
    What a chance!!! I've got the same problem as you?!
    I've tried almost everything, but still haven't succeeded to solve it!
    Hopefully someone can help us.
    Greetings

  • ADF/JClient problem

    Hi @all,
    I have a problem using bc4j. I have an ADF/JClient application that shows a Master/Detail Log from a database to the user.
    But the connection to the database should by dynamic: With a combo box I select the database to connect to
    and than I want to see the Master/Detail Log.
    Actually, the problem is that the Master/Detail tables (normal JTables with BC4J bindings) do not refresh their views,
    so I ever see the same Matser/Detail Log.
    The connection to the database is established using my own classes MyConnectionStrategy (derived from DefaultConnectionStrategy)
    and MyEnvInfoProvider (derived from DefaultEnvInfoProvider).
    Bootstrap code look like this:
    JUMetaObjectManager.setBaseErrorHandler(new JUErrorHandlerDlg());
    JUMetaObjectManager.getJUMom().setJClientDefFactory(null);
    mCtx = new BindingContext();
    mCtx.put(DataControlFactory.APP_PARAM_ENV_INFO, new MyEnvInfoProvider(mDBConn));
    HashMap map = new HashMap(4);
    map.put(DataControlFactory.APP_PARAMS_BINDING_CONTEXT, mCtx);
    JUMetaObjectManager.loadCpx("DataBindings.cpx", map);
    mDataControl = (DCDataControl)mCtx.get("AppModuleDataControl1");
    mDataControl.setClientApp(DCDataControl.JCLIENT);
    How can I update (refresh, reinitialize, ...) the bindings between my AppMod and the 2 JTables?
    Please help me.
    Thanks in advanced,
    Dorian.

    You may use the 'key' on the row from one VO to find it in another and then set the currency using the found row.

  • ADF BC problem

    Hi,
    I just got the Oracle Jdeveloper 10g Handbook by Oracle Press. When trying the first example I run into some problem. I am supposed to create a JSP page based on ADF BC. The problem is I cant find the wizard for setting up this. The book says I should find business components under the project technologies when choosing a new gallery.
    Is there some thing I have to do to enable ADF BC. I'm using developer preview 10.1.3.
    Please help
    /Stefan

    The book is about the production version of Oracle JDeveloper which is 10.1.2. - the 10.1.3 version you are using is still not in production, and the preview that you have doesn't have the ADF BC parts in it.
    So download 10.1.2 from http://otn.oracle.com/products/jdev

  • ADF Styling Problem,

    Hello everybody ,
    i have a problem styling an ADF Application , i followed this example
    http://technology.amis.nl/blog/5722/using-adf-faces-11g-skinning-for-setting-the-styles-of-specific-component-instances-or-groups-of-instances
    and i created the following Css in my customskin.css
    af|inputText::label
    color:Blue;
    but it doesn't change anything , the labels of the inputtexts are still brown according to blafplus-rich theme of oracle .
    The project doesn't apply the blue color to the labels of the inputText boxes
    Second thing , in the above article the author told that the CSS editor will autocomplete code with you whereas it recognize neither inputText nor Label element . How can i solve this problem too ?
    How can i solve this problem ?
    Please help me urgently !

    Hi,
    Second thing , in the above article the author told that the CSS editor will autocomplete code with you whereas it recognize neither inputText nor Label element . How can i solve this problem too ?
    Tools --> Preferences --> CSS
    Enable ADF CSS
    Frank

  • ADF valuechangeListener Problem

    Hi,
    I am facing problem with ADF selectonechoice valuechangeListener.
    Problem is i have four valuechangeListeners. those are dependent List Boxes. If i perform action on one valuechangeListener all other VC 's also calling. due to this i am facing problems. how to prevent calling other VCs. why it is calling other VCS also. please reply me very urgent
    Thanks
    Jyothi

    Hi,
    a value change listener fires for any value that has been changed in a form (assuming the component has a ValueChangeListener applied). So obviously in your case more than one field has been changed, which shouldn't be the case if autosubmit=true is used
    Frank

Maybe you are looking for