##BUG## Jdev/ADF/UIX/SCM
I'm developing an UIX application with jdev 9.0.5.1, adf and SCM to versioning. And i've been lost half day to catch an problem, that i think, was a scm bug.
Explaining :
I've create a uix page and, drag and drop a VO from data control to create input form. Then i put an commit button, in same way. I look to page struture on tab UIModel and there is commit, i look to structur on my UIModel.xml and there is. So i think that all ok. But when i run and try to save changes the messagebox show java.lang.nullPointerException, and on log nothing appear. Only an strange message "Warning: using introspection to lookup return value from :Commit.". Then when i try to see xml source from uimodel, there is no commit dccontrol. I've to do manual check out from uimodel.xml and to all again. I think that scm must do it by his self.
In case you have access to Metalink, could you please check Note 300714.1 and see if it relates to your case ?
Similar Messages
-
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 -
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 -
JDev 10.1.2 / ADF UIX: Approach to render data in levels/groups
Hi guys, I'm looking for ideas on how to use ADF (UIX and BO) to render (and let the user work with) a structure of 3 tables which have a parent->child->child-of-the-child relationship.
The need is to show a table with the parent in one row and below of it all its children and below of each children its own children. Also, the lowest level rows have numeric data which have to be summarized by the parent and so on upwards; and the lowest level rows should be selectable for edition in another page, and after edition return to the table.
Is the recommended approach to use the hGrid to do this?
Or should I use plain JSP and customized tags to achieve this (for easiness)?
Are there any other options?Solved it!! :-)
In the UIX page I check for the proxy in the event result, if it is there I take it, otherwise I take it from bindingcontext. Is this the right way to do it? Here is the UIX code:
<hGrid id="pptoHGrid" alternateText="No items were found"
treeData="${bindings.bindingContext['tree']}">
<boundAttribute name="proxy">
<if>
<comparison type="equals">
<null/>
<dataObject default="${uix.eventResult.hGridProxy}"/>
</comparison>
<dataObject default="${bindings.bindingContext['hGridProxy']}"/>
<dataObject default="${uix.eventResult.hGridProxy}"/>
</if>
</boundAttribute>Greets,
Fernando -
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áborrepost
-
LOV /ADF UIX pages does not work on the older version od UIX page
Hi
I have recently migrated UIX project from the Jdeveoper 9i to Jdev10g version 1.0.1.2, everything work without any issue, however when I try to create a LOV or any component that are ADF-UIX based, but it does not work I don't even get any error, it just does not work based on the ADF-UIX (Expression base component),
Any help to resolve this issue will be greatly appericated
ThanksI too have problems with LOVs in UIX pages. I have
some that you have to run twice to get back a value.To solve this problem,
1) open your UIX page where you create a new row
2) in the Structure window, click third tab "UI Model"
3) double-click the control action binding corresponding to Create
4) select CreateInsert from the list
The problem is related to the fix we introduced for the "Blank Row Issue" (see http://www.oracle.com/technology/products/jdev/tips/muench/blankrow/index.html).
If you have access to MetaLink, please refer to Note 299860.1 and Bug 4201020.
Regards,
Didier. -
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 CondonOne 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. -
ADF UIX doSelect override with PL/SQL fails to allow insert
I've been trying to create an ADF-UIX web app for simple insert/update/delete of records to a table.
The schema simply has 2 tables - master and detail where the detail pk is made up of the master id and a start date:
CREATE TABLE master (
id NUMBER NOT NULL,
name VARCHAR2 (10) NOT NULL,
CONSTRAINT pk_master
PRIMARY KEY ( id ));
CREATE TABLE detail (
id NUMBER NOT NULL,
start_date DATE NOT NULL,
name VARCHAR2 (10) NOT NULL,
description VARCHAR2 (100),
CONSTRAINT pk_detail
PRIMARY KEY ( id, start_date ));
ALTER TABLE detail ADD CONSTRAINT d_m_fk FOREIGN KEY (id) REFERENCES master(id)
This works fine when I create it in a similar manner to that described in the "Complete ADF UIX Application ..." tutorial doc.
http://www.oracle.com/technology/products/jdev/collateral/tutorials/9050/adfuix_tut.html
I then tried to override the ADF doSelect and doDML methods as outlined in ADF_BC_StoredProcedures.zip example app allowing me to use PL/SQL stored pkg for dml.
http://www.oracle.com/technology/sample_code/products/jdev/10g/ADF_BC_StoredProcedures.zip
On trying to insert a new row my web app now fails with a null pointer exception when I press the Submit button. The app calls doSelect->handleStoredProcSelect which fails to get the value of a column.
void handleStoredProcSelect() {
CallableStatement st = null;
try {
String stmt = "BEGIN test_api.do_select(?,?,?,?,?); END;";
DBTransaction tr = getDBTransaction();
st = tr.createCallableStatement(stmt,1);
## This line works, I'm guessing because the value is populated from the master record I've selected in the form ...
st.setLong(1,getTestId().longValue());
##FAILS HERE st.setDate(2,getStartDate().dateValue());
Update,delete still work ok. And if I run the test app (right click on AppModule and select Test) all works ok.
I'm not sure why doSelect is called on an insert so I commented out:
doSelect
handleStoredProcSelect
handleStoredProcLock
compareOldAttrTo
Web App now lets me insert as expected.
So finally ....my question is:
Whilst the app now works does commenting out the doSelect leave me open to problems I haven't thought off
and if not if you did want to use it how can you allow inserts?
Any thoughts or similar experiences appreciated ...
Cheers
IanI've been trying to create an ADF-UIX web app for simple insert/update/delete of records to a table.
The schema simply has 2 tables - master and detail where the detail pk is made up of the master id and a start date:
CREATE TABLE master (
id NUMBER NOT NULL,
name VARCHAR2 (10) NOT NULL,
CONSTRAINT pk_master
PRIMARY KEY ( id ));
CREATE TABLE detail (
id NUMBER NOT NULL,
start_date DATE NOT NULL,
name VARCHAR2 (10) NOT NULL,
description VARCHAR2 (100),
CONSTRAINT pk_detail
PRIMARY KEY ( id, start_date ));
ALTER TABLE detail ADD CONSTRAINT d_m_fk FOREIGN KEY (id) REFERENCES master(id)
This works fine when I create it in a similar manner to that described in the "Complete ADF UIX Application ..." tutorial doc.
http://www.oracle.com/technology/products/jdev/collateral/tutorials/9050/adfuix_tut.html
I then tried to override the ADF doSelect and doDML methods as outlined in ADF_BC_StoredProcedures.zip example app allowing me to use PL/SQL stored pkg for dml.
http://www.oracle.com/technology/sample_code/products/jdev/10g/ADF_BC_StoredProcedures.zip
On trying to insert a new row my web app now fails with a null pointer exception when I press the Submit button. The app calls doSelect->handleStoredProcSelect which fails to get the value of a column.
void handleStoredProcSelect() {
CallableStatement st = null;
try {
String stmt = "BEGIN test_api.do_select(?,?,?,?,?); END;";
DBTransaction tr = getDBTransaction();
st = tr.createCallableStatement(stmt,1);
## This line works, I'm guessing because the value is populated from the master record I've selected in the form ...
st.setLong(1,getTestId().longValue());
##FAILS HERE st.setDate(2,getStartDate().dateValue());
Update,delete still work ok. And if I run the test app (right click on AppModule and select Test) all works ok.
I'm not sure why doSelect is called on an insert so I commented out:
doSelect
handleStoredProcSelect
handleStoredProcLock
compareOldAttrTo
Web App now lets me insert as expected.
So finally ....my question is:
Whilst the app now works does commenting out the doSelect leave me open to problems I haven't thought off
and if not if you did want to use it how can you allow inserts?
Any thoughts or similar experiences appreciated ...
Cheers
Ian -
ADF UIX cancel/rollback button?
Hi
We're having a fair amount of trouble implementing a "cancel" button in our ADF UIX application (JDev 10.1.2). Apologies to those who read this same post on the ODTUG mailing list..... I'm hunting for even a hint of an answer before I approach Oracle Support.
To set the scene, we have a parent VO "Departments" with child VOs "Dispatch" and "Agency". Dispatch also has a FK to Agency.
We have a UIX view-screen that displays in a master-detail relationship Departments and Dispatch. From this screen the user can select the edit button, which navigates to an input-form screen to edit the currently selected Dispatch record.
The Dispatch record has effective_from and effective_to dates. The underlying EO has a MethodValidator that ensures the from date <= the to date.
On the edit screen we currently provide 2 buttons, Ok and Cancel. The Ok submitButton is bound to the commit binding, and navigates back to the view page via a struts link on completion.
If the user selects the ok button and MethodValidator returns an error, the edit page's MessageBox displays the error and the user remains at the edit page until they resolve the issue.
Our problems start with the cancel button.
Originally we implemented the Cancel button as a simply "button" that navigated back to the view page. This worked well as the changes are never submitted, and on returning to the view page the record is presented in it's original state before being edited, thus the user's changes have been "cancelled".
However if the user was editing an existing record, entered invalid dates that violated the MethodValidator, clicked ok and saw the MethodValidator error, then clicked cancel, on returning to the view page, any changes to the underlying record are visible including the invalid dates. I believe this occurs because the record has been submitted to the mid-tier by the ok button, and as such the changes now lies in the mid-tier.
Given that a cancel "button" which simply navigates back to the view page is not a viable solution, we decided to investigate using a rollback button on our edit page, which then navigated back to the view page.
There is a nasty side affect in using the rollback functionality, and has been a continuous frustration mentioned on OTN. When rollback is issued, it appears all iterators in the running application have their current row reset to the first element.
This is a pain as in our example this results in not only the Dispatch iterator being reset to the first element, but also the parent Departments iterator, and presumably all other iterators in the application too. This would be an extreme annoyance to the user in every time they selected cancel, they would then need to navigate back to the correct Departments and Dispatch record if they wanted to make a different change.
As such it is necessary to write some code to store the iterator positions before issuing the rollback, rolling-back, then restoring the iterator positions from the saved states.
Luckily we found some code on OTN to do this:
ADF - cancel button not working in input form(add new row)?
This mechanism appeared to work, but, then, we did find one problem.
I described at the beginning that our Dispatch VO is not only related to Departments but also Agency. To cater for this in our edit screen by including a LOV bound <messageList>, which displayed the relating Agencies for the user to select from.
In using the pinched OTN rollback code, in the same scenario as previously, when the user edits a record, invalidates the MethodValidator after clicking ok, then clicks cancel, on returning to the view page, the field in Dispatch that represents the Agency is incorrectly showing a numeric result such as 0, 1, 2 etc. We realised that the value being shown is the previous edit screen's <messageList> internal index number representing the value selected in the list, and not the actual value itself.
We're note sure why the OTN rollback code is causing this to occur. Though it restores the Agency iterator's position, it shouldn't result in the <messageList> index being written to the underlying Dispatch agency field, but rather the value the <messageList> index represents.
It appears to me we're caught between a "rock and a hard-place" here. The simple solution of using a cancel "button" doesn't work when errors are raised. The complex case of using a "rollback" button doesn't work due to the problem with the <messageLists>.
My research on OTN shows the "cancel vs rollback" button is a common frustration. Can somebody help me in providing a satisfactory "cancel" button that I can use throughout my app please?
Many thanks in advance.
Chris MuirThe stack:
Class Method
UsrEcvAmpdsViewRowImpl setAgency
UsrEcvAmpdsViewRowImpl setAttrInvokeAccessor
ViewRowImpl setAttribute
DCDataControl setAttributeInRow
DCJboDataControl setAttributeInRow
JUCtrlValueBinding setAttributeInRow
JUCtrlValueBinding setInputValue
JUCtrlValueBinding setInputValue
InitModelListener _setInputValue
InitModelListener _doModelUpdate
InitModelListener eventStarted
AbstractPageBroker _fireUIXRequestEvent
AbstractPageBroker handleRequest
BaseUIPageBroker handleRequest
PageBrokerHandler handleRequest
UIXServlet doGet
HttpServlet service
HttpServlet service
ResourceFilterChain doFilter
JAZNFilter doFilter
ServletRequestDispatcher invoke
ServletRequestDispatcher forwardInternal
ServletRequestDispatcher forward
RequestProcessor doForward
RequestProcessor processForwardConfig
RequestProcessor process
ActionServlet process
ActionServlet doGet
HttpServlet service
HttpServlet service
ResourceFilterChain doFilter
JAZNFilter doFilter
ServletRequestDispatcher invoke
ServletRequestDispatcher forwardInternal
ServletRequestDispatcher forward
RequestProcessor doForward
RequestProcessor processForwardConfig
RequestProcessor process
ActionServlet process
ActionServlet doGet
HttpServlet service
HttpServlet service
ResourceFilterChain doFilter
JAZNFilter doFilter
EvermindFilterChain doFilter
ADFBindingFilter doFilter
ServletRequestDispatcher invoke
ServletRequestDispatcher forwardInternal
HttpRequestHandler processRequest
HttpRequestHandler run
HttpRequestHandler run
ReleasableResourcePooledExecutor$MyWorker run
Thread runAt a wild guess, InitModelListener is causing the issue, because it's the first place where we can see a setInputValue occuring?
To make this official I've raised a TAR (4613003.992) with Oracle Support with a cut down version of our app to work through the issue. -
Binding Editors not present in ADF UIX
Hi
I have been having some trouble with accessing both the Boolean Binding Editor and the LOV Editor from the structure window, when in design mode of an ADF UIX page.
My bindings are present, but when I 'Edit' the binding, the only option available to me is to select the Iterator and the attribute.
The documentation keeps telling me to select different tabs, but there aren't any!
Anyone had this problem????
I'm on;
Oracle IDE 9.0.5.16.27
Business Components Version 9.0.5.16.0
UML Modelers Version 9.0.5.14.78
Versioning Support 9.0.5.14.78
WebDAV Support Version 9.0.5.14.78
Struts Modeler Version 9.0.5.4.22
Designer Generators Framework 9.0.5.5.71
ADF UIX 2.2.8
java.version 1.4.2
java.home C:\j2sdk1.4.2_04\jre
java.vm.name Java HotSpot(TM) Client VM
java.vm.vendor Sun Microsystems Inc.
java.vm.version 1.4.2-b28
user.language en
user.region <no value assigned>
user.name chris.bell
user.home C:\Documents and Settings\chris.bell
user.dir C:\Software\Oracle\jdev9052\jdev\bin
os.name Windows XP
os.version 5.1
os.arch x86
http.proxyHost <no value assigned>
http.proxyPort <no value assigned>
http.nonProxyHosts <no value assigned>
ide.patches
Thanks in advance
Christhe primaryclient action should pass the rowkey of the current row (${uix.current.rowKeyStr}) as a parameter. This way the server can find the corresponding row on the server in an event handler.
see
http://www.oracle.com/technology/products/jdev/tips/jacobi/edittable/tip_adfuixtable_edit.html -
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.
SathyaBrenden,
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.CurrentDateBeanfor 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. -
ADF/UIX logon custom screen?
Hi,
probably this is a pretty trivial question, but how do I make my custom logon screen for a ADF/UIX JDev 10g app?
TIA,
TamasTamás,
Check this:
http://otn.oracle.com/sample_code/products/jdev/bc4jtoystore/index.html
Gábor -
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 -
Creating Oracle ADF uix Pages Tutorial
In going through the "Creating Oracle ADF UIX Pages" Tutorial
Step 5:Adding a Table - I'm running into problems:
- In item 2, I can not find Provider in Design Structure window (I find it in XML Structure Window)
- In item 3, I can not find datacomponent in General Component Palette
- In item 5 I can not find inline component in General Component Palette
Does this tutorial work or am I missing something?I'm having the same problem. I looked over the recommended tutorial and it didn't cover how to mock up data in xml for prototyping. I think this tutorial is for JDeveloper 9i and not 10g. How is this done in JDev 10g?
I entered this from the xml editor: I also tried:
without a data tag
with a data tag and with an inline tag
with an inline tag
nothing seems to work...
<provider>
<!-- Add DataProviders (<data> elements) here -->
<data>
<book cover=""
title=""
author=""
price=""/>
</data>
</provider>
I get this message when I switch to design mode:
The document is not in a valid state. Please edit this file in the code editor to resolve syntax problems and then return to the visual editor.
It doesn't like the xml code. Any ideas in how to do this? I would like to prototype an applications without connecting to real data sources...
Thanks in advance
Keith...
Maybe you are looking for
-
ITunes 10.6.0.40 doesn't remember my username and password
So I listen to a paid podcast that requires me to log in through iTunes before allowing updates, which WAS all fine and good till I downloaded the current version of iTunes (10.6.0.40). Now, instead of a "Windows Security" window popping up to reque
-
DNG Converter disappeared - how reinstall?
My DNG converter shortcut no longer links to the DNG converter (.exe) file. Seems the file "disappeared", possibly as a result of upgrading some Adobe software, where old files get deleted? That likely doesn't "make sense", but the bottom line is, th
-
Hi, All - I am receiving the following error messages while running a level 0 backup. Please assist! ==================================================================================================== RMAN-03009: failure of backup command on d1 chan
-
Hi, I am on 10g and need to implement dynamic partitioning. In a table based on a column I need to implement dynamic partitioning . id name value 1 name1 val1 2 name1 val2 3 name2 val3 4 name2 val4 5 name2 val5 From the above table for each name uniq
-
Diff between get and find View Object methods.
Dear Forum, I have a very basic query to ask as a newbie. In oaf examples and dev guide I see usage of get<voname> and am.findViewObjects('<vo name'>); what is the difference between 2 calls and when to use each and where. An example to use each in r