BUG? ADF-UIX uix-configuration.xml template-import

My UIX file works fine when I use templateImport:
  <templates xmlns="http://xmlns.oracle.com/uix/ui">
    <templateImport source="tmpl/library.uit"/>
  </templates>
...but I get the following error, when I try to make this templatelibrary global by adding the bold line in my uix-config.xml
  <application-configuration debug="false">
    <default-expression-language>el</default-expression-language>
    <ui-extensions>
      <extension-class>
        oracle.cabo.adf.rt.AdfUiExtension
      </extension-class>
      <extension-class>
        oracle.cabo.servlet.struts.StrutsUIExtension
      </extension-class>
      <template-library>tmpl/library.uit</template-library>
    </ui-extensions>
  </application-configuration>
java.lang.IllegalArgumentException: Could not find ExpressionParser with name:null as specified in the ApplicationConfiguration
     at oracle.cabo.share.xml.XMLUtils.getDefaultExpressionParser(Unknown Source)
     at oracle.cabo.share.xml.XMLUtils.getDefaultExpressionParser(Unknown Source)
     at oracle.cabo.servlet.xml.parse.UIExtensionsConfigParser._loadTemplateLibrary(Unknown Source)
     at oracle.cabo.servlet.xml.parse.UIExtensionsConfigParser.addCompletedChild(Unknown Source)
     at oracle.cabo.share.xml.TreeBuilder$Handler.endElement(Unknown Source)
     at oracle.xml.parser.v2.NonValidatingParser.parseElement(NonValidatingParser.java:1211)
     at oracle.xml.parser.v2.NonValidatingParser.parseRootElement(NonValidatingParser.java:300)
     at oracle.xml.parser.v2.NonValidatingParser.parseDocument(NonValidatingParser.java:267)
     at oracle.xml.parser.v2.XMLParser.parse(XMLParser.java:149)
     at oracle.cabo.share.xml.TreeBuilder.parse(Unknown Source)
     at oracle.cabo.share.config.ApplicationConfigurationParser.createInstance(Unknown Source)
     at oracle.cabo.share.config.ApplicationConfiguration.getInstance(Unknown Source)
     at oracle.cabo.share.error.ServletErrorLog.createErrorLog(Unknown Source)
     at oracle.cabo.servlet.BaseBajaContext.createErrorLog(Unknown Source)
     at oracle.cabo.servlet.BaseBajaContext.<init>(Unknown Source)
     at oracle.cabo.servlet.UIXServlet.createBajaContext(Unknown Source)
     at oracle.cabo.servlet.UIXServlet.doGet(Unknown Source)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
     at oracle.cuervo.share.servlet.PreviewServletContainer.handleRequest(PreviewServletContainer.java:310)
     at oracle.cuervo.share.servlet.PreviewServletContainer.handleRequest(PreviewServletContainer.java:226)
     at oracle.cabo.ide.addin.preview.UIXRenderThread._reallyLoad(UIXRenderThread.java:274)
     at oracle.cabo.ide.addin.preview.UIXRenderThread.runImpl(UIXRenderThread.java:205)
     at oracle.cabo.ide.addin.preview.BasePreviewThread.run(BasePreviewThread.java:112)

Hi MatLee,
I follow the guide on chapter Configuration for ADF UIX to redefine paths for uit files and uix files but it doesn't work. I created a new uix page and it keep saving the page in the default root directory (public_html) instead of the path that I specified.
Could you please show me very detail <uix-path> example and uit path example that redefine the default paths for those two type of files. I need a working code examples, not a generic or shortcut ones. I need to store those files in their respective directories and relative to the root directory because the application is big and have many modules; each module's uix pages should be saved in their own directories and also separate from the template files directory.
Also, can I specify more than one paths in the <uix-path> tag? and is this tag used for redefining the path for uit templates file location as well or there is other tag for it?
Thanks
Tom

Similar Messages

  • ADF UIX Runtime

    I download a sample application from http://technology.amis.nl/blog/765/spring-and-oracle-adf-registering-a-pojo-spring-jdbc-based-business-service-as-data-control
    However, one project' library need ADF UIX Runtime
    How to import this extension?
    ============================================================
    [Running application SpringAndADF on Server Instance IntegratedWebLogicServer...]
    [06:08:04 PM] ---- Deployment started. ----
    [06:08:04 PM] Target platform is (Weblogic 10.3).
    [06:08:04 PM] Retrieving existing application information
    [06:08:04 PM] Running dependency analysis...
    [06:08:04 PM] Deploying 2 profiles...
    [06:08:05 PM] Wrote Web Application Module to C:\Users\Administrator\AppData\Roaming\JDeveloper\system11.1.1.3.37.56.60\o.j2ee\drs\SpringAndADF\HrmWebClientWebApp.war
    [06:08:05 PM] Wrote Enterprise Application Module to C:\Users\Administrator\AppData\Roaming\JDeveloper\system11.1.1.3.37.56.60\o.j2ee\drs\SpringAndADF
    [06:08:05 PM] Deploying Application...
    <Dec 9, 2010 6:08:08 PM PST> <Error> <HTTP> <BEA-101371> <There was a failure when processing annotations for application C:\Users\Administrator\AppData\Roaming\JDeveloper\system11.1.1.3.37.56.60\o.j2ee\drs\SpringAndADF\HrmWebClientWebApp.war. Please make sure that the annotations are valid. The error is oracle.cabo.servlet.UIXServlet>
    <Dec 9, 2010 6:08:08 PM PST> <Error> <Deployer> <BEA-149265> <Failure occurred in the execution of deployment request with ID '1291946886471' for task '24'. Error is: 'weblogic.application.ModuleException: Failed to load webapp: 'SpringAndADF-HrmWebClient-context-root''
    weblogic.application.ModuleException: Failed to load webapp: 'SpringAndADF-HrmWebClient-context-root'
         at weblogic.servlet.internal.WebAppModule.prepare(WebAppModule.java:404)
         at weblogic.application.internal.flow.ScopedModuleDriver.prepare(ScopedModuleDriver.java:176)
         at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:199)
         at weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(DeploymentCallbackFlow.java:507)
         at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:41)
         Truncated. see log file for complete stacktrace
    Caused By: java.lang.ClassNotFoundException: oracle.cabo.servlet.UIXServlet
         at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:280)
         at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:253)
         at weblogic.utils.classloaders.ChangeAwareClassLoader.findClass(ChangeAwareClassLoader.java:56)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
         Truncated. see log file for complete stacktrace
    >
    <Dec 9, 2010 6:08:08 PM PST> <Warning> <Deployer> <BEA-149004> <Failures were detected while initiating deploy task for application 'SpringAndADF'.>
    <Dec 9, 2010 6:08:08 PM PST> <Warning> <Deployer> <BEA-149078> <Stack trace for message 149004
    weblogic.application.ModuleException: Failed to load webapp: 'SpringAndADF-HrmWebClient-context-root'
         at weblogic.servlet.internal.WebAppModule.prepare(WebAppModule.java:404)
         at weblogic.application.internal.flow.ScopedModuleDriver.prepare(ScopedModuleDriver.java:176)
         at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:199)
         at weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(DeploymentCallbackFlow.java:507)
         at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:41)
         Truncated. see log file for complete stacktrace
    Caused By: java.lang.ClassNotFoundException: oracle.cabo.servlet.UIXServlet
         at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:280)
         at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:253)
         at weblogic.utils.classloaders.ChangeAwareClassLoader.findClass(ChangeAwareClassLoader.java:56)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
         Truncated. see log file for complete stacktrace
    >
    [06:08:08 PM] #### Deployment incomplete. ####
    [06:08:08 PM] Remote deployment failed (oracle.jdevimpl.deploy.common.Jsr88RemoteDeployer)
    #### Cannot run application SpringAndADF due to error deploying to IntegratedWebLogicServer.
    [Application SpringAndADF stopped and undeployed from Server Instance IntegratedWebLogicServer]

    You cannot http://www.oracle.com/technetwork/developer-tools/jdev/desupport11g-087493.html
    John

  • ADF UIX Search Form - Is this a bug?

    I created a JDev 9.0.5.2 ADF UIX Search form from the component palette. I ran the page without making any changes. I chose the Find button which displayed the search criteria. I selected the delete button and then the create button, which created 2 blank records (possible bug?) in the search criteria table at the top. I selected one of the blank records and entered search criteria. I chose the submit button which changed the data in the search criteria table as it is supposed to do. I selected the other blank record, entered search criteria and submitted it. Again the data in the search criteria table was changed appropriately. I selected the delete button and the wrong record was deleted (bug?).
    Are these bugs?

    Hello,
    a similar sort of situation is created if you have a Read-only table on a page which drills down to an edit/create input form page. If you enable a create functionality you need to enable some way for the user to back out of the created record and clean up the newly created row. On the detail page (JobsEdit.do) i created a link to a custom event on the master page action (JobsView.do) like this:
    <button text="Cancel" destination="JobsView.do?event=cancelinput"/> In the Data Action class for the JobsView page i have a method defined as follows:
    public void onCancelinput(DataActionContext ctx)
        Row row = ctx.getBindingContainer().getApplicationModule().findViewObject("JobsView1").getCurrentRow();
        row.refresh(row.REFRESH_REMOVE_NEW_ROWS );
    }as a workaround, it sounds like you may need put some manual controls in place to tightly control any newly created rows which have/will not been used. I don't know if this will resolve the deleting wrong record problem...
    regards,
    Brenden

  • ADF UIX: LOV searchText contains wrong value (maybe it is a bug)

    I'm developing a WEB-application using ADF UIX.
    I'm using JDeveloper 9.0.5.2 build 1618.
    I've created a form with a messageLovInput field.
    If I type e.g. Veszprém into the input field the content of the searchText parameter seems wrong. The URL is http://bela:8988/szszr/_ui.uix?_t=fred&enc=UTF-8&_minWidth=750&_minHeight=550&configName=BaseUIPBCfg1&contextURI=/szszr&redirect=/szszr/telepulesekLOV.do&source=levCimTelepules&searchText=Veszpr%C3%A9m&event=lovFilter
    And the value of the searchText string in the lovFilter event is
    [0] 'V' 86
    [1] 'e' 101
    [2] 's' 115
    [3] 'z' 122
    [4] 'p' 112
    [5] 'r' 114
    [6] ' ' 65533
    The interesting thing is that the final letter (m) is missing from the string!
    If I write Veszprém into the search field of the listOfValue and I press the Go button I get the right value in searchText.
    The web.xml contains the following part:
    <filter>
    <filter-name>ADFBindingFilter</filter-name>
    <filter-class>oracle.adf.model.servlet.ADFBindingFilter</filter-class>
    <init-param>
    <param-name>encoding</param-name>
    <param-value>UTF-8</param-value>
    <!--param-value>windows-1250</param-value-->
    </init-param>
    </filter>
    The encoding of the UIX pages is windows-1250.
    Any help is appreciated,
    Gábor

    repost

  • Uploading xml file using ADF UIX and storing in ordsys.orddoc field

    I am using ADF UIX and I am using the messageFileUpload tag to upload an XML file into the database (the file contains special characters like hyphens, apostrophes, $, etc). Once in the database I have a procedure which puts it into a clob field using the dbms_lob package. However, what exactly does ordsys.orddoc do with special characters? If I debug my procedure I see that 1 of 4 hyphens and 3 apostrophes have been turned into a character that looks like a square. Anyone know what is going on?

    It should pass binary information only, no conversion at all.
    The conversion is likely in messageFileUpload or the dbms_lob package you are using. Or you may need to tell DBMS_LOB the character set the XML file is in?
    You may want to upload the file using the interMedia tag library... Using uploadFormData?
    http://www.oracle.com/technology/software/products/intermedia/htdocs/descriptions/tag_library.html
    http://www.oracle.com/technology/products/intermedia/htdocs/jsptaglib/html/toc.htm
    Larry

  • ADF UIX Partial page rendering

    Hi
    I am facing a mysterious problem with partial page rendering in ADF UIX.
    My page contains a <header> H1 and inside this there are two headers(H2 and H3).
    The partial page rendering is in the header H2 and is working fine.
    When i remove the below header H3 the partial page rendering ceases to work and get stuck.
    Pasting the full code below. Please suggest.
    <?xml version="1.0" encoding="windows-1252"?>
    <!-- $Header: registration.uix 115.4.51.4 2009/12/14 13:10:05 kcthirum noship $ -->
    <page xmlns="http://xmlns.oracle.com/uix/controller"
    xmlns:ui="http://xmlns.oracle.com/uix/ui"
    xmlns:ctrl="http://xmlns.oracle.com/uix/controller"
    xmlns:html="http://www.w3.org/TR/REC-html40"
    xmlns:myTemplate="http://xmlns.oracle.com/xhub"
    xmlns:bc4j="http://xmlns.oracle.com/uix/bc4j"
    xmlns:data="http://xmlns.oracle.com/cabo/marlin" expressionLanguage="el">
    <!--This UIX page is used as a tutorial page for new developers, which is why it has a lot of comments-->
    <!--This section describes the ApplicationModule used by this page, and any View Objects that are used to display UI components or are used in any of the event handlers-->
    <bc4j:registryDef>
    <!-- XhubRegAM is the application module used by the entire Registration flow. defFullName is just the class. configName is the Configuration, which always has the pattern <AM name>Local -->
    <bc4j:rootAppModuleDef name="XhubRegAM"
    defFullName="oracle.apps.snw.tpadmin.server.XhubRegAM"
    configName="XhubRegAMLocal" releaseMode="stateful">
    <bc4j:viewObjectDef name="TpProfilesRegVO" rangeSize="1" autoCreate="false"/>
    <bc4j:viewObjectDef name="UsersRegVO" rangeSize="1" autoCreate="false"/>
    <!--IdentifierDomainsView drives the dropdown list of Identifier Types-->
    <bc4j:viewObjectDef name="IdentifierDomainsView" rangeSize="20"/>
    <!--XhubTerritoriesTlView drives the dropdown list of Countries-->
    <bc4j:viewObjectDef name="XhubTerritoriesTlView" rangeSize="300"/>
    </bc4j:rootAppModuleDef>
    </bc4j:registryDef>
    <!--We import the template file xhub.uit, which has code to display the tabs, subtabs, global buttons, etc., appropriately-->
    <templates xmlns="http://xmlns.oracle.com/uix/ui">
    <templateImport source="xhubtpadmin.uit"/>
    </templates>
    <content>
    <!--in this section we define all of the methods and ResourceBundle classes that we want to reference as data sources in our page-->
    <dataScope xmlns="http://xmlns.oracle.com/uix/ui"
    xmlns:data="http://xmlns.oracle.com/uix/ui">
    <provider>
    <!--We use the TextProvider class to display ANY text to the user. All text is controlled in the database and cached on the middle tier. This allows for translation and for customization of text-->
    <data name="textSource">
    <bundle class="oracle.apps.snw.uicommon.TextProvider"/>
    </data>
    <!--This method provides information about the hub-->
    <data name="adminInfo">
    <method class="oracle.apps.snw.tpadmin.webui.AdminInfo"
    method="getAdminInfo"/>
    </data>
    </provider>
    <contents>
    <document>
    <!--This section defines the html metadata, usually just the page title-->
    <metaContainer>
    <head title="${textSource.REGISTRATION}"/>
    </metaContainer>
    <contents>
    <body>
    <contents>
    <!--This next tag indicates that everything inside of it should be encapsulated in the "rootChild" node of the template page-->
    <myTemplate:xhubTpAdminPageLayout selectedTab="1">
    <contents>
    <!-- this will contain any validation errors after form submission -->
    <messageBox automatic="true"/>
    <!--The form tag is necessary for any kind of form handling. This particular form performs some javascript validation before submitting-->
    <form name="reg" method="POST">
    <contents>
    <!--The javascript that is executed on form submission-->
    <!-- we cannot implicitly determine that events will be triggered because submit buttons are outside the form scope, so add the placeholder explicitly -->
    <formParameter name="event"/>
    <!-- define the bc4j scope of all child elements-->
    <bc4j:rootAppModuleScope name="XhubRegAM">
    <contents>
    <!-- a top-level header -->
    <header text="${textSource.REGISTRATION}">
    <contents>
    <!-- always used OraInstructionText, not <tip>, for explanation messages-->
    <styledText styleClass="OraInstructionText"
    text="${textSource.REG_PAGE_EXPLAIN}"/>
    <!-- a second-level header -->
    <header text="${textSource.REG_COMPANY_INFO}">
    <contents>
    <stackLayout>
    <contents>
    <!-- the labeledFieldLayout is the correct layout for vertically-stacked labeled fields-->
    <labeledFieldLayout id="TpPartialDetails" width="80%"
    labelWidth="40%">
    <contents>
    <messageChoice name="OracleAppsCustFlag"
    prompt="Oracle Apps Customer"
    required="yes" statePreserved="true"
    selectedValue="${ui:defaulting(uix.pageProp.OracleAppsCustFlag, 'select')}">
    <primaryClientAction>
    <firePartialAction event="buyorsup"
    targets="TpPartialDetails"
    formSubmitted="true"
    unvalidated="true"/>
    </primaryClientAction>
    <contents>
    <option text="-select-" value=""/>
    <option text="${textSource.YES}" value="Y"/>
    <option text="${textSource.NO}" value="N"/>
    </contents>
    </messageChoice>
    <messageTextInput prompt="${textSource.ORACLE_CSI_Q}"
    name="OracleCsi"
    text="${uix.pageProp.OracleCsi}"
    rendered="${ui:defaulting(uix.pageProp.OracleCsiRender, 'false')}"/>
    <messageTextInput prompt="${textSource.YOUR_TP_NAME}"
    name="TpName"
    tip="${textSource.YOUR_TP_NAME_TIP}"
    required="no"
    text="${uix.pageProp.TpName}"
    rendered="${ui:defaulting(uix.pageProp.TradeswithTPRender, 'false')}"/>
    <messageTextInput prompt="${textSource.YOUR_TP_ALIAS}"
    name="TpAlias"
    tip="${textSource.YOUR_TP_ALIAS_TIP}"
    required="no"
    text="${uix.pageProp.TpAlias}"
    rendered="${ui:defaulting(uix.pageProp.TradeswithTPAliasRender, 'false')}"/>
    </contents>
    </labeledFieldLayout>
    </contents>
    </stackLayout>
    </contents>
    </header>
    <!--level-2 header-->
    <header text="${textSource.TP_DEFAULT_CONTACT_INFO}">
    <contents>
    <labeledFieldLayout width="80%" labelWidth="40%">
    <contents>
    <!--all of these fields default to the corresponding ctrl:page value if the user has entered a value. These values are set up in the register() handler-->
    <messageTextInput prompt="${textSource.PASSWORD_PROMPT}"
    name="Password" id="Password"
    required="yes" secret="true"
    maximumLength="32"
    text="${uix.pageProp.Password}"/>
    <messageTextInput prompt="${textSource.PASSWORD_CONFIRM_PROMPT}"
    name="PasswordConfirm"
    id="PasswordConfirm" required="yes"
    secret="true" maximumLength="32"
    text="${uix.pageProp.PasswordConfirm}"/>
    </contents>
    </labeledFieldLayout>
    </contents>
    </header>
    </contents>
    </header>
    </contents>
    </bc4j:rootAppModuleScope>
    <spacer height="10"/>
    <!--message indicating how we indicate required fields-->
    <inlineMessage required="yes"
    prompt="${textSource.REQUIRED_FIELD}"/>
    </contents>
    </form>
    </contents>
    <!--the contents of this tag will appear below the page-->
    </myTemplate:xhubTpAdminPageLayout>
    </contents>
    </body>
    </contents>
    </document>
    </contents>
    </dataScope>
    </content>
    <!--event handlers-->
    <handlers>
    <!--This event is called by pressing the submit button-->
    <event name="continue">
    <bc4j:findRootAppModule name="XhubRegAM">
    <method class="oracle.apps.snw.tpadmin.webui.RegistrationHandlers"
    method="register"/>
    </bc4j:findRootAppModule>
    </event>
    <!--This event is called by pressing the Cancel button-->
    <event name="cancel">
    <!-- finding the ApplicationModule causes it to be checked out from the ApplicationPool. It is released after rendering completes. -->
    <bc4j:findRootAppModule name="XhubRegAM">
    <!-- rollback the current transaction -->
    <bc4j:rollback/>
    <!-- forward to the summary page -->
    <go name="main"/>
    </bc4j:findRootAppModule>
    </event>
    <!--the * event is called whenever the page is accessed and no other event is called-->
    <event name="buyorsup">
    <bc4j:findRootAppModule name="XhubRegAM">
    <!--This method sets the context of the page, namely the scope of the country dropdown view object-->
    <method class="oracle.apps.snw.tpadmin.webui.RegistrationHandlers"
    method="isBuyerorSupplier"/>
    </bc4j:findRootAppModule>
    </event>
    <event name="*">
    <bc4j:findRootAppModule name="XhubRegAM">
    <!--This method sets the context of the page, namely the scope of the country dropdown view object-->
    <method class="oracle.apps.snw.tpadmin.webui.RegistrationHandlers"
    method="setContext"/>
    </bc4j:findRootAppModule>
    </event>
    </handlers>
    </page>
    Please suggest if you know of any documentation on ADF UIX partial page rendering.
    ADF UIX has very little documentation online and finding it hard to debug this issue.
    It ll be of great help.
    Thanks
    Kamal

    Hi Jason,
    As of EA9, all rendered components support a partialTriggers attribute. This attribute takes a list of master component IDs. If any of the master components are updated via a partial event, the dependent component will be rerendered in the partial update.
    If you are on an earlier release, you should upgrade.
    Thanks,
    Jeanne

  • ADF UIX Role Based Access Control Implementation

    Hi,
    Can anybody suggest a detailed example or tutorials of how to implement a role based access control for my ADF UIX application.
    The application users can be dymanically added to specific roles (admin, Secretary, Guest). Based on the roles, they should be allowed to access only certain links or ADF entity/view operations. Can this be implemented in a centralized way.
    Can this be done using JAZN or JAAS. If so, Please provide me references to simple tutorial on how to do this.
    Thanks a lot.
    Sathya

    Brenden,
    I think you are following a valid approach. The default security in J2EE and JAAS (JAZN) is to configure roles and users in either static files (jazn-data.xml) or the Oracle Internet Directory and then use either jazn admin APIs or the OID APIs to programmatically access users, groups and Permissions (your role_functions are Permissions in a JAAS context).
    If you modelled your security infrastructure in OID than the database, an administrator would be able to use the Delegated Administration Service (DAS), as web based console in Oracle Application Server. To configure security this way, you would have two options:
    1. Use J2EE declarative security and configure all you .do access points in web.xml and constrain it by a role name (which is a user group name in OID). The benefit of this approach is that you can get Struts actions working dirctly with it because Struts actions have a roles attribute.
    The disadvantage is that you can't dynamically create new roles because they have to be mapped in web.xml
    2. Use JAAS and check Permissions on individual URLs. This allows you to perform finer grained and flexible access control, but also requires changes to Struts. Unlike the approach of subclassing the DataActionForward class, I would subclass the Struts RequestProcessor and change the processRoles method to evaluate JAAS permissions.
    The disadvantage of this approach is that it requires coding that should be done carefully not to lock you in to your own implementation of Struts so that you couldn't easily upgrade to newer versions.
    1 - 2 have the benefit of that the policies can be used by all applications in an enterprise that use Oracle Application Server and e.g. SSO.
    Your approach - as said - is valid and I think many customers will look for the database first when looking at implementing security (so would I).
    Two links that you might be interested in to read are:
    http://sourceforge.net/projects/jguard/ --> an open source JAAS based security framework that stores the user, roles and permissions in database tables similar to your approach
    http://www.oracle.com/technology/products/jdev/collateral/papers/10g/adfstrutsj2eesec.pdf --> a whitepaper I've written about J2EE security for Web applications written with Struts and JavaServer pages. You may not be able to use all of it, but its a good source of information.
    Frank

  • Data Binding in ADF UIX example trouble

    Two related questions:
    From the help example 3. Data Binding in ADF UIX example trouble in JDeveloper on UIX. If this worked I was going to run a small java class that captures the login and passes it as a messagebox with a Welcome login name on the first page, but I can't get past the example and path problems.
    From the example..."
    package yourpackage;
    import java.util.Date;
    public class CurrentDateBean
    public CurrentDateBean() { }
    public String getTime()
    return (new Date()).toString();
    Now, we want to change the page so it uses getTime(). We need to do three things: Tell UIX to data bind the text attribute. Add a <dataScope> to the page to provide data to the content. Write a small "data provider" in Java that can access the bean. First, we'll data bind "text": <text xmlns="http://xmlns.oracle.com/uix/ui"
    text="${uix.data.currentDate.time}"/>The example has one small change. The value is changed to ${uix.data.currentDate.time}, which is an expression that defines the data. This is shorthand for "get the time property from currentDate." If you tried running this example, you'd see nothing. That iss because we haven't given currentDate to the page, so the databinding failed, and the "text" is left to null. We do this by adding <dataScope> to the page: <dataScope xmlns="http://xmlns.oracle.com/uix/ui">
    <provider>
    Q#1?? Trying to follow the demo. The method class and method name do not seem to match the names in the above class from the demo. Am I missing a point here, please help.
    <data name="currentDate">
    <method class="yourpackage.DataDemo" method="getCurrentDate"/>
    </data>
    </provider>
    <contents>
    <text text="${uix.data.currentDate.time}"/>
    </contents>
    </dataScope>
    Q#2?? When I try and apply the demo class to my home.uix XML file with
    "<?xml version = '1.0' encoding = 'windows-1252'?>
    <page xmlns="http://xmlns.oracle.com/uix/controller"
    xmlns:ui="http://xmlns.oracle.com/uix/ui"
    xmlns:data="http://xmlns.oracle.com/uix/ui"
    xmlns:ctrl="http://xmlns.oracle.com/uix/controller"
    xmlns:html="http://www.w3.org/TR/REC-html40" expressionLanguage="el">
    <content>
    <dataScope xmlns="http://xmlns.oracle.com/uix/ui">
    <provider>
    <!-- start Add DataProviders (<data> elements) here -->
    <data name="currentDate">
    <method class="us.mn.state.dot.apptrack.security.CurrentDateBean" method="getTime()"/>
    </data>
    <!-- end Add DataProviders (<data> elements) here -->
    </provider>
    <contents>
    <text text="${uix.data.currentDate.time}"/>
    <document>
    <metaContainer>"
    I get the following, and I don't know how to make the UIX XML accept the correct path, please help:
    �file:/C:/JDeveloper905p/jdev/mywork/ProjTrack/AppTrack/ViewController/public_html/home.uix: Parsing error, line 12, column 97: Could not find class us.mn.state.dot.apptrack.security.CurrentDateBean

    for question 1 the name of the class CurrentDateBean
    actually has nothing to do with the el expression
    uix.data.currentDate.time. The currentDate part of the
    el expression is coming from the method data provider part
    of your page:
    <data name="currentDate">
    <method class="yourpackage.DataDemo"
    method="getCurrentDate"/>
    </data>
    so if you changed the name of the data provider to "foo":
    <data name="foo">
    <method class="yourpackage.DataDemo"
    method="getCurrentDate"/>
    </data>
    your el would look like this:
    uix.data.foo.time
    by the way the uix.data part tells UIX to look for
    a <data> element define in the <provider> section of
    your dataScope.
    For question #2, do you have the java file
    us.mn.state.dot.apptrack.security.CurrentDateBean on
    your classpath and is it compiled? You will get that
    warning if it is not on your classpath.
    Also you are incorrectly interpreting the example. What
    you are doing is trying to reference the actual bean
    object and its getTime() method. What you want to do
    is write a method data provider that returns your
    CurrentDataBean. so uix.data.currentDate would return
    a CurrentDateBean instance object. the .time part of the
    el expression would tell UIX to look for a method named
    getTime() and use that value.
    let me know if you have any more questions.

  • Problem with uix-config.xml, custom stylesheet mystyles.xss

    using JDeveloper 9i (9.0.3.1035)
    Hi,
    I have created a uix-config.xml in the WEB-INF directory of my web-application. It looks as follows:
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <configurations xmlns="http://xmlns.oracle.com/uix/config">
    <application-configuration debug="true" >
    <style-sheet-name>mystyles.xss</style-sheet-name>
    </application-configuration>
    </configurations>
    (I did try to use the default-configuration element but there result was similarly disappointing)
    in the /cabo/styles directory, I have created the mystyles.xcc file:
    <?xml version="1.0"?>
    <styleSheetDocument xmlns="http://xmlns.oracle.com/uix/style">
    <import href="blaf.xss"/>
    <styleSheet>
    <style name="DefaultFontFamily">
    <property name="font-family">serif</property>
    </style>
    <!-- Change the default font to be 15 point -->
    <style name="DefaultFont">
    <property name="font-size">15pt</property>
    </style>
    </styleSheet>
    </styleSheetDocument>
    When I start the application, I notice that debug-mode is switched on, i.e. the uix-config.xml is found and correctly loaded. However, I see no effect whatsoever of my own stylesheet mystyles.xss.
    I have even tried to define the stylesheet on the UIXPagebroker servlet in the web.xml (though I have no idea whether that is possible at all):
    <servlet>
    <servlet-name>uix</servlet-name>
    <servlet-class>oracle.cabo.servlet.UIXServlet</servlet-class>
    <init-param>
    <param-name>oracle.cabo.servlet.xml.CheckModified</param-name>
    <param-value>true</param-value>
    </init-param>
    <init-param>
    <param-name>oracle.cabo.ui.StylesheetName</param-name>
    <param-value>mystyles.xss</param-value>
    </init-param>
    In short, is there anyone who can tell me how to "invoke" my own stylesheet? Am I doing something wrong?
    Thanks for your thoughts!
    Lucas

    OK,
    I have been reading more of the other posts on this topic and figured out the problem. Of course I had used the <stylesheet-name> element listed in the On Line Help UIX Developer's Guide instead of the <stylesheet> it should be.
    Having made that change in the uix-config.xml file, everything was fine.
    (so now no more rubbish in the web.xml, a straightforward uix-config.xml and my own mystyles.xss)
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <configurations xmlns="http://xmlns.oracle.com/uix/config">
    <default-configuration debug="true" >
    <style-sheet>tmitts.xss</style-sheet-name>
    </default-configuration>
    </configurations>
    and
    <?xml version="1.0"?>
    <styleSheetDocument xmlns="http://xmlns.oracle.com/uix/style">
    <import href="blaf.xss"/>
    <styleSheet>
    <style name="DefaultFontFamily">
    <property name="font-family">serif</property>
    </style>
    <!-- Change the default font to be 15 point -->
    <style name="DefaultFont">
    <property name="font-size">15pt</property>
    </style>
    </styleSheet>
    </styleSheetDocument>
    best regards,
    Lucas Jellema (AMIS Services BV)

  • Jdeveloper 10.1.2 whitout adf uix

    Hello I'm programming an application web with the enviroment jdeveloper 10.1.2 using Struts technology. I've a problem because everytime the own jdeveloper includes automatically the adf uix libraries and code in the web.xml like:
    <servlet>
    <servlet-name>uix</servlet-name>
    <servlet-class>oracle.cabo.servlet.UIXServlet</servlet-class>
    <init-param>
    <param-name>oracle.cabo.servlet.pageBroker</param-name>
    <param-value>oracle.cabo.servlet.xml.UIXPageBroker</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
    </servlet>
    and the folder html/cabo, I dont want this extra information, because I dont want use adf technology, only J2EE. What's the jdeveloper configuration to prevent this situation?
    Thank you very much!!

    Hi Steve
    I have read your "Building a Web Store with Struts & ADF Frameworks 10.1.2" guide and I have found a answer to each question that I had.
    Nevertheless, I try to use your extension framework classes to my web application, but I cannot find the data control (this method (findDataControl(dataControlName);) return a null pointer exception.
    In MyAppDataForwardAction classes ...
    protected ApplicationModule getApplicationModule(String dataControlName, DataActionContext ctx) {
    DCDataControl dc = ctx.getBindingContext().findDataControl(dataControlName);
    if ((dc != null) && dc instanceof DCJboDataControl) {
    return (ApplicationModule) dc.getDataProvider();
    return null;
    I have add this classes to my application ( Framework Extension Project )
    ExceptionHelper
    ModuleApplicationMyAppImpl extends ApplicationModuleImpl
    MyAppDataForwardAction extends DataForwardAction
    MyAppErrorHandler extends DCErrorHandlerImpl
    I have add this extend to my AM Service (Model Project)
    MyAppServiceImpl extends ModuleApplicationMyAppImpl
    I have add this class (ViewController Project)
    MyAppServiceDataForwardAction extends MyAppDataForwardAction
    note : I don't use your UIX and xsql extension framework facilities.
    Could you help me with these few informations ?
    Do you have a french version of this guide "Building a Web Store with Struts & ADF Frameworks 10.1.2" ?
    Thank's !!
    Rémi

  • ADF UIX and Javascript

    Hello,
    I am new in ADF UIX...
    I have a table in ADF UIX and I would like to use some my javascript functions. I know I have to set: <table proxied="true">....</table> but where I can write my functions, in an included file ? I mean, how does the interaction between the XML configuration file and javascript work ?
    Thank in advance,
    Henry

    Hi Rade Todorovich,
    As mentioned previously, if you had placed the javascript as indexed child of head element it would be fine.
    <Head> is named child of <metaContainer> which inturn is named child of <document> element. The example below should make it clear.
    This is how the UIX document would be
    <?xml version="1.0" encoding="windows-1252"?>
    <page xmlns="http://xmlns.oracle.com/uix/controller"
    xmlns:ui="http://xmlns.oracle.com/uix/ui"
    xmlns:ctrl="http://xmlns.oracle.com/uix/controller"
    xmlns:html="http://www.w3.org/TR/REC-html40"
    expressionLanguage="el">
    <content>
    <dataScope xmlns="http://xmlns.oracle.com/uix/ui">
    <provider>
    <!-- Add DataProviders (<data> elements) here -->
    </provider>
    <contents>
    <document>
    <metaContainer>
    <!-- Set the page title -->
    <head title="test">
    <contents>
    <!-- case 1 -->
    <script source="./cabo/js/test.js"/>
    <script>
    <contents>
    function theFunction()
    alert('the function');
    </contents>
    </script>
    </contents>
    </head>
    </metaContainer>
    <contents>
    <body>
    <contents>
    <form name="form0">
    <!-- case 2 -->
    <contents>
    <script>
    <contents>
    function hi()
    alert('hi');
    </contents>
    </script>
    <button text="call-hi" name="fn" onClick="return hi();"/>
    <button text="call-theFunction" name="fn1" onClick="return theFunction();"/>
    </contents>
    </form>
    </contents>
    </body>
    </contents>
    </document>
    </contents>
    </dataScope>
    </content>
    <handlers>
    <!-- Add EventHandlers (<event> elements) here -->
    </handlers>
    </page>
    There are two usages:
    Case 1
    In your html it would just appear the way you would normally write a JS function with in the head
    <html>
    <head>
    <title></title>
    <META>
    <script language="javascript" src="./cabo/js/test.js">
    <!-- case 1-->
    <scirpt language="javascript">
    theFunction()
    </script>
    </head>
    <!-- case 2 -->
    <form ....>
    </form>
    <script language="javascript">
    function hi()
    alert('hi');
    </script>
    </html>
    Case 2
    As such <script> element can occur in HTML document.
    as mentioned in http://www.w3.org/TR/html401/interact/scripts.html#h-18.2.1
    In the same way UIX also allows the use of script element with in its <body> element.
    With case 2 you can see the way the script gets inlined in the HTML document. Please run the UIX and view source for the rendered page. It should become obvious.
    Thanks,
    Vijay Venkataraman

  • Demo: From ADF UIX to JSF

    Hello,
    I am new to most of this. I am running jdev 10.1.3 preview with EA12.
    While trying to run the demo described in the article "From ADF UIX to JSF"
    found at http://www.oracle.com/technology/oramag/oracle/04-nov/o64jsf.html I got the following errors.
    Project: C:\data\sample_home\MyADFFaces\ADFFacesView\ADFFacesView.jpr
    C:\data\sample_home\MyADFFaces\ADFFacesView\public_html\empTable.jspx
    Error: Internal error, ClassNotFound creating tag parser for afh:head, class: oracle.adfimpl.view.faces.taglib.html.HtmlHeadTag
    Error: Unable to find class for bean: null defined by tag with class: oracle.adfimpl.view.faces.taglib.html.HtmlHeadTag
    Error: head must be terminated with /> or %> not >
    Error: Internal error, ClassNotFound creating tag parser for af:form, class: oracle.adfimpl.view.faces.taglib.core.CoreFormTag
    Error: Unable to find class for bean: null defined by tag with class: oracle.adfimpl.view.faces.taglib.core.CoreFormTag
    Error: Internal error, ClassNotFound creating tag parser for af:table, class: oracle.adfimpl.view.faces.taglib.core.data.CoreTableTag
    Error: Unable to find class for bean: null defined by tag with class: oracle.adfimpl.view.faces.taglib.core.data.CoreTableTag
    Error: Internal error, ClassNotFound creating tag parser for af:tableSelectOne, class: oracle.adfimpl.view.faces.taglib.core.data.CoreTableSelectOneTag
    Error: Unable to find class for bean: null defined by tag with class: oracle.adfimpl.view.faces.taglib.core.data.CoreTableSelectOneTag
    Error: Internal error, ClassNotFound creating tag parser for af:commandButton, class: oracle.adfimpl.view.faces.taglib.core.nav.CoreCommandButtonTag
    Error: Unable to find class for bean: null defined by tag with class: oracle.adfimpl.view.faces.taglib.core.nav.CoreCommandButtonTag
    Here is a copy of the JSP page source that I created as I was following the text in the article
    Source starts
    <?xml version='1.0' encoding='windows-1252'?>
    <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="1.2"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:afh="http://xmlns.oracle.com/adf/faces/EA6/html"
    xmlns:af="http://xmlns.oracle.com/adf/faces/EA6">
    <jsp:text>
    <![CDATA[ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> ]]>
    </jsp:text>
    <jsp:directive.page contentType="text/html;charset=windows-1252"/>
    <f:view>
    <html>
    <afh:head>
    <meta http-equiv="Content-Type"
    content="text/html; charset=windows-1252"/>
    <title>
    empTable
    </title>
    </afh:head>
    <body>
    <af:form>
    <af:table value="#{myEmployees.employees}" var="row" rows="10">
    <f:facet name="selection">
    <af:tableSelectOne text="Select Employee and click ...">
    <af:commandButton text="Show" action="showDetails"/>
    </af:tableSelectOne>
    </f:facet>
    <af:column>
    <af:outputText value="#{row.first_name}"/>
    <f:facet name="header">
    <af:outputText value="Firstname"/>
    </f:facet>
    </af:column>
    <af:column>
    <af:outputText value="#{row.last_name}"/>
    <f:facet name="header">
    <af:outputText value="Lastname"/>
    </f:facet>
    </af:column>
    <af:column>
    <af:outputText value="#{row.email}"/>
    <f:facet name="header">
    <af:outputText value="Email"/>
    </f:facet>
    </af:column>
    </af:table>
    </af:form>
    </body>
    </html>
    </f:view>
    </jsp:root>
    ---source ends ---
    Can anyone tell me how to get past this? Thank you.
    -- Jack Condon

    One immediate thing: "EA6" is in the tag library namespaces, but you're using EA12.
    In general, there've been a lot of changes between EA6 and EA12, but the changed namespace is one simple thing.

  • File upload, download using ADF UIX and not JSP

    I have examples for the file upload, download using JSP
    But I want to use ADF UIX. Look and feel in this is impressing and I want to use this. Any one have example for this.
    Users will select a file from their desktop
    This will be stored into the database (Any document. Word, Excel)
    When they query the records then the UIX column need to give a hyperlink. Clicking on the link should prompt to download the file to the local system

    Sure, I use the Apache Commons File Upload package, so that is what I will discuss here ( [Commons File Upload|http://commons.apache.org/fileupload/] ).
    The Commons File Upload uses instances of ProgressListener to receive upload progress status. So first create a simple class that implements ProgressListener:
    public class ProgressListenerImpl implements ProgressListener {
        private int percent = 0;
        public int getPercentComplete() {
            return percent;
        public void update(long pBytesRead, long pContentLength, int pItems) {
            if (pContentLength > -1) { //content length is known;
                percent = (new Long((pBytesRead / pContentLength) * 100)).intValue();
    }So in your Servlet that handles file upload you will need to create an instance of this ProgressListenerImpl, register it as a listener and store it in the session:
    ServletFileUpload upload = new ServletFileUpload();
    ProgressListenerImpl listener = new ProgressListenerImpl();
    upload.setProgressListener(listener);
    request.getSession().setAttribute("ProgressListener", listener);
    ...Now create another servlet that will retrieve the ProgressListenerImpl, get the percent complete and write it back (how you actually write it back is up to you, could be text, an XML file, a JSON object, up to you):
    ProgressListenerImpl listener = (ProgressListenerImpl) request.getSession().getAttribute("ProgressListener");
    response.getWriter().println("" + listener.getPercentComplete());
    ...Then your XMLHttpRequest object will call this second servlet and read the string returned as the percent complete.
    HTH

  • Oracle ADF UIX and Struts

    Does Oracle ADF UIX use Struts components internally? If yes, Does Oracle Support the issues that arises because this internally used Struts components? (I am using Oracle ADF in my application.
    Thanks,
    Aravind.

    DataForwardAction and DataAction are build on top of struts actions to coordinate ADF databindings and it's life cycle;
    UIX, has xmlns:struts="http://xmlns.oracle.com/uix/struts" this XML namespace has some elements like
    <struts:form> and <struts:messageTextInput> also <struts:dataScope>
    They work like struts jsp tag;
    here a good paper;
    http://download-west.oracle.com/otn_hosted_doc/jdeveloper/904preview/uixhelp/uixdevguide/struts.html
    Marcos Ortega
    Brazil

  • ADF UIX programatic data binding

    Oracle ADF UIX Developer's Guide mentions the possibility to use the UIX framework in Java, to create new objects or alter the existing ones.
    E.g. we can create a table using a construct like:
    TableLayoutBean tlb = new TableLayoutBean();
    The same document demonstrates the data binding:
    BoundValue rows = new DataBoundValue(_YOUR_NAMESPACE, YOURNAME, "rows");
    tlb.setIndexedNodeList(new DataObjectListNodeList(rows));
    For "simple" attributes using DataObject DataObjectList, etc. the procedure is clear. But what about creating a data bound table or input text:
    <table model="${bindings.EmpView1}" ... >
    <messageTextInput model="${bindings.DeptCode}"/>
    It’s easy to understand that model="${bindings.EmpView1}" or model="${bindings.DeptCode}" are equivalent to multiple attribute bindings (data, validation, read-only, etc.), but it looks that the classes/methods resolving these equivalences and linking the bean to the corresponding DCControlBinding, are not public (or maybe I was not able to find them).
    How can we obtain programmatically, in Java, the same structure as described above (in XML)? The best would be to use the same classes used when the UIX XML document is parsed to create the page description.
    It would be very nice to be able to use a structure like
    tbl.setModel( new JUCtrlRangeBinding(...) );
    txt.setModel( new JUCtrlValueBinding(...) );
    or maybe
    txt.setAttribute( "model", new TextInputModelBoundValue(...) ) etc.
    In JSF we can do something like:
    ValueBinding vb = application.createValueBinding(value);
    component.setValueBinding(attributeName, vb);
    Can we do something similar in UIX?
    Any help will be appreciated,
    thanks,
    Mircea Ionita

    Since the code is already written, it's a pity that we can't use/extend it. I don't like to say it (sorry) but I find this design choice (implement the "model" only into the XML parsing layer) a little bit strange (or maybe I don't understand... ;-) ). We should (or we are supposed to) be able to do in java everything that we can do in XML.
    I would like to find more support/help for the programmatic approach. I have the feeling that you are too focalised on "use-our-state-of-the-art-tools/wizards-to-write-the-code-for-you" and you forgot that this is not suitable for all projects. E.g. our application creates the user interface according to a layout defined by each user. To generate it, we need to use at maximum the extension mechanism and we can't simply relay on "rendered" attribute etc.
    -When should we expect this new UIX release?
    -What about the UIX controller? The Struts controller will replace it?
    -What about the source code of uixexp2-demo.jar (distributed with ADF_UIX_component_guide)?
    -Why while debugging we can't set a method/class breakpoint on UIX classes (to understand the data flow) - the stack is secret?
    Thanks

Maybe you are looking for