Logging in a Page Flow
What are the best practices and recommended method for logging in a page flow?
Thanks
Girish
But how this will work in Prodcution environment.
"John Wheeler" <[email protected]> wrote in message
news:404dec0f$[email protected]..
>
Karthi,
You can use Log4j without the need for a control context:
package com.mycom.mypackage;
import org.apache.log4j.Logger
public mymethod()
Logger log = Logger.getLogger(this.getClass().getPackage().getName() +this.getClass().getName());
log.debug("my log message");
The log4j configuration in workshopLogCfg.xml needs to have a categoryadded for
your logging class. In this case it uses the package and class name, e.g."com.mycom.mypackage".
>
in workshopLogCfg.xml:
category name="com.mycom.mypackage">
<priority value="debug" />
<appender-ref ref="APPLOGFILE" />
</category>
where APPLOGFILE is the default appender to write to the workshop.logfile.
>
>
>
"Karthi" <[email protected]> wrote:
Hi all,
How can I use Log4j logging API in a Page flow ?
In the documentation its given that we can get the Logger thru context
of
the Control.
But in my Pageflow, I don't have a control. Then how can I get the Logger
to
be used in the pageflow.
Thanks,
Karthi
Similar Messages
-
Communication between multiple page flow portlets
Hi, I am working on weblogic portal 8.1.
I've been struggling to communicate between different page flow portlets,
I have a login page flow portlet and i need to submit login details to indeex page after login action is done.
I am able to do this by using PageUrl class and RequestDispatcher's forward method using definition label of the index page flow portlet.
but it is not happening again when i logged out.
If anybody have worked on it, please let me know the soltution.
Thanks,
Vidya sagarNot sure whether you tried this option(I tried it works for me).
configuration has to be done is portlet-2:
=========================
Create an custom event namely(messageCustomEvent) and also add an action for it for invoking a portlet method getMessage in Portlet-2.
//Place this method in Portlet-2
public void getMessage(ActionRequest request, ActionResponse response,
Event event) {
CustomEvent customEvent = (CustomEvent) event;
String message = (String) customEvent.getPayload();
response.setRenderParameter("message0", message);
configuration has to be done is portlet-1:
=========================
when click on Login in portlet1, in the pageflow code you fire an custom event as shown below
PortletBackingContext context =
PortletBackingContext.getPortletBackingContext(getRequest());
context.fireCustomEvent("messageCustomEvent", form.getMessage());
return new Forward("success");
Thanks & Regards,
Murali.
============ -
Transaction rolled back in Page Flow
I am getting the following exceptions out of nowhere. It's non-deterministic, it just happens from time to time. The same steps can lead to normal behaviour or this error... It all ends with timed out exception. I don't know what is causing it, I don't know how to fix it. Does anyone have any ideas?
From the log:
|javax.ejb.TransactionRolledbackLocalException
javax.ejb.TransactionRolledbackLocalException: Client's transaction aborted
at com.sun.ejb.containers.BaseContainer.useClientTx(BaseContainer.java:2267)
at com.sun.ejb.containers.BaseContainer.preInvokeTx(BaseContainer.java:2147)
at com.sun.ejb.containers.MessageBeanContainer.beforeMessageDelivery(MessageBeanContainer.java:906)
at com.sun.ejb.containers.MessageBeanListenerImpl.beforeMessageDelivery(MessageBeanListenerImpl.java:38)
at com.sun.enterprise.connectors.inflow.MessageEndpointInvocationHandler.invoke(MessageEndpointInvocationHandler.java:131)
at $Proxy62.invoke(Unknown Source)
at com.stc.bpms.bpelConnector.impl.AbstractWSProvider.invoke(AbstractWSProvider.java:105)
at com.stc.bpms.bpelImpl.runtime.Interpreter$1.run(Interpreter.java:661)
at com.stc.bpms.bpelConnector.impl.ExecutorImpl$WorkImpl.run(ExecutorImpl.java:338)
at com.sun.enterprise.connectors.work.OneWork.doWork(OneWork.java:54)
at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:382)
|#]
[#|2008-01-29T13:15:24.015+0100|INFO|IS5.1.3|javax.enterprise.system.container.ejb.mdb|_ThreadID=39; ThreadName=Worker: 24;stacktrace-id=1;|javax.ejb.TransactionRolledbackLocalException
javax.ejb.TransactionRolledbackLocalException: Exception thrown from bean; nested exception is: javax.ejb.TransactionRolledbackLocalException: Client's transaction aborted
javax.ejb.TransactionRolledbackLocalException: Client's transaction aborted
at com.sun.ejb.containers.BaseContainer.useClientTx(BaseContainer.java:2267)
at com.sun.ejb.containers.BaseContainer.preInvokeTx(BaseContainer.java:2147)
at com.sun.ejb.containers.MessageBeanContainer.beforeMessageDelivery(MessageBeanContainer.java:906)
at com.sun.ejb.containers.MessageBeanListenerImpl.beforeMessageDelivery(MessageBeanListenerImpl.java:38)
at com.sun.enterprise.connectors.inflow.MessageEndpointInvocationHandler.invoke(MessageEndpointInvocationHandler.java:131)
at $Proxy62.invoke(Unknown Source)
at com.stc.bpms.bpelConnector.impl.AbstractWSProvider.invoke(AbstractWSProvider.java:105)
at com.stc.bpms.bpelImpl.runtime.Interpreter$1.run(Interpreter.java:661)
at com.stc.bpms.bpelConnector.impl.ExecutorImpl$WorkImpl.run(ExecutorImpl.java:338)
at com.sun.enterprise.connectors.work.OneWork.doWork(OneWork.java:54)
at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:382)
javax.ejb.TransactionRolledbackLocalException: Exception thrown from bean; nested exception is: javax.ejb.TransactionRolledbackLocalException: Client's transaction aborted
at com.sun.ejb.containers.BaseContainer.checkExceptionClientTx(BaseContainer.java:2570)
at com.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:2422)
at com.sun.ejb.containers.MessageBeanContainer.afterMessageDelivery(MessageBeanContainer.java:1056)
at com.sun.ejb.containers.MessageBeanListenerImpl.afterMessageDelivery(MessageBeanListenerImpl.java:46)
at com.sun.enterprise.connectors.inflow.MessageEndpointInvocationHandler.invoke(MessageEndpointInvocationHandler.java:154)
at $Proxy62.invoke(Unknown Source)
at com.stc.bpms.bpelConnector.impl.AbstractWSProvider.invoke(AbstractWSProvider.java:105)
at com.stc.bpms.bpelImpl.runtime.Interpreter$1.run(Interpreter.java:661)
at com.stc.bpms.bpelConnector.impl.ExecutorImpl$WorkImpl.run(ExecutorImpl.java:338)
at com.sun.enterprise.connectors.work.OneWork.doWork(OneWork.java:54)
at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:382)
|#]PaulPeters wrote:
The particular Page Flow instance has remained active for some reason and just timed out in accordance to the settings for eInsight on the Integration Server's section.
Does the Page Flow start with an Event-Based Decision ? There's a small reference to that in the User Guide, but quite important in real-life.
Do you implement time-out features inside the Page Flow ?Thanks for your reply.
It happens after series of clicks. When I keep the app busy.
My page flow looks like this:
Event Based Decision, single link, continues with a while(true) loop, which contains everything else.
JCD loads object from database, they are shown in a table with links (buttons styled as links) and some controls (pagination, but non jcaps, my own, and sorting)
After click, the page flow continues to a detail page. From detail page you get back by a back button in browser. (Is this causing the problem?)
After choosing the sort option or pagination, the page flow returns to the beginning of the while loop.
I don't use any time-out features
I've migrated the UI to another domain. The first domain runs a scheduled process. Now I don't get time outs. Maybe that was the problem. But the test team didn't test it thoroughly yet. -
Oracle WebLogic Portal 10.3.6: Creating a Java Page Flow Portlet in WorkShop
Hello,
We are not able to create a Java Page Flow Portlet in WorkShop. While adding the Beehive NetUI Facet(1.0.2) getting the following error in the workshop.
error installing beehive netui facet
File template generation failed: Unable to configure AvalonLogSystem : java.io.FileNotFoundException: C:\Windows\System32\velocity.log (Access is denied)
Following are the environment details:
WebLogic Server 11gR1
Oracle WebLogic Portal 10.3.6
Any Solution for this issue??Hi Chris,
I have already gone through this document. But the procedure that is given in it is not working. I mean I am not able to render diffferent different jspx files based on the menu link clicked. It will great if you can provide me steps by step process since I am new to the portal World.
Thanks a lot for your reply -
Hi,
I am getting ActionNotFoundException when browsing through my pages which use the Nested Page Flows.
The complete description of the Nested Page Flow we are using in our Application .
CustomerController --> Parent Controller
ServiceAddressController --> Child Controller
OrganizationHierarchyController --> Child Controller
The CustomerController.saveCustomerContacts() action invokes the ServiceAddressController.begin().
ServiceAddressController performs some actions and returns the Control back to the CustomerController.serviceAddressDone().
CustomerController.serviceAddressDone() inturn again immediately invokes the OrganizationHierarchyController.begin().
After performing some actions the OrganizationHierarchyController returns the control back to CustomerController.organizationHierarchyDone().
The logs indicate that the Exception is occuring after returning from the OrganizationHierarchyController.begin().
This is happening in the Integration environment.
And one more thing…
We have found from the Bea Web site
(link: http://edocs.bea.com/workshop/docs81/doc/en/core/index.html ) that the following Exception occurs in the development environment..
com.bea.wlw.netui.pageflow
EmptyNestingStackException Class
public class EmptyNestingStackException
extends PageFlowException
Exception that occurs when the user invokes an action in a nested page flow that is qualified with a @jpf:forward return-action="action-name-in-calling-pageflow " annotation, but there is no calling page flow. This can happen in iterative development mode when you have modified files and caused the web application to be redeployed, or when the session expires.
Hierarchy
Object
Throwable
Exception
RuntimeException
PageFlowException
EmptyNestingStackException
All Implemented Interfaces
Serializable
We initially thought that the above Exception might be the cause for ActionNotFoundException.
Since the Weblogic Server removes the Controller from the nesting stack, and hence the Controller is lost and there by resulting in ActionNotFoundException.
And we thought that this happens only in the iterative development Environment.
But, we are getting this Exception even in the Integration Environment.
This is causing problems for us to test the Application, and resolve the defects, and considerably hindering the progress of our development and the testing phase.
We would appreciate any one who could find a quick solution for the above problem.
We are Using Weblogic 8.1.3 with ServicePack 3.
thanks,
Venkatesh Pagadala.
:-)Did you get to the bottom of this ?
The exception can be generated when you try to access /invoke an action on a pageflow that is no longer in the stack.
Once you use the return-to and go back to a parent page flow then then nested page flow is destroyed. -
Page flow actions are called twice from each UI's action=...
Odd observation: my nothing fancy login / pw change / logged in / jsps and pageflow are having the actions in the .jpf called twice for each jsp form action=.
What can cause this?
For example: the login jsp form action=loginAction, the corresponding method in the .jpf is called twice when the user clicks the login button on the login UI. The same behavior is observed for all the other actions in this page flow too.
This has been a real problem for the pw change UI. Until I figured this out, pw change always returned invalid pw due to the second call to the action. :))
tnx curtI have narrowed it down even more. What is happening is that you select the first item in the list it throws a validation error. I found this by adding and inline message. The weird thing is that if you select any other item in the list but the first everything flows as normal.
This is a list of dates bound to a date type column in a database.
Any Idea's why selecting the first item in a list would throw the validation message? -
Hello,
Im new for jdeveloper. Im ORAforms pl/sql programmer and no deep knowledge about java.
Im following the sample on https://blogs.oracle.com/shay/entry/for_some_reason_one_common.
Im trying this sample as forms manage security and before im diving deep to jdeveloper i need to study basic for this new IDE & framework{managed beans,biding..etc}.
And built it in scratch but i cannot make it navigate to another page after click the button heres the code i dont know how to explain much because im new maybe sharing the code would help.
My work not complete yet as when password not correct. just want first to navigate the welcome page when return value is GOOD.
Only need also when return value is BAD just display dialog or error message.
How to bind the manage bean?
VERSION : Studio Edition Version 11.1.2.3.0
<?xml version='1.0' encoding='UTF-8'?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1" xmlns:f="http://java.sun.com/jsf/core"
xmlns:af="http://xmlns.oracle.com/adf/faces/rich">
<jsp:directive.page contentType="text/html;charset=UTF-8"/>
<f:view>
<af:document title="LogInPage.jspx" id="d1">
<af:form id="f1">
<af:panelStretchLayout topHeight="90px" startWidth="100px" id="psl1">
<f:facet name="top">
<af:panelStretchLayout id="psl4" startWidth="526px" endWidth="326px" topHeight="5px"
bottomHeight="0px">
<f:facet name="bottom"/>
<f:facet name="center"/>
<f:facet name="start">
<af:image source="/images/njc_banner.PNG" id="i1"/>
</f:facet>
<f:facet name="end"/>
<f:facet name="top"/>
</af:panelStretchLayout>
</f:facet>
<f:facet name="center">
<!-- id="af_twocol_left_full_header_Stretched" -->
<af:decorativeBox theme="dark" id="db2">
<f:facet name="center">
<af:panelStretchLayout startWidth="334px" id="psl2">
<f:facet name="center">
<af:decorativeBox theme="medium" id="db1">
<f:facet name="center"/>
</af:decorativeBox>
</f:facet>
<f:facet name="start">
<af:decorativeBox id="db3" theme="medium" dimensionsFrom="parent">
<f:facet name="center">
<af:panelFormLayout id="pfl1" inlineStyle="height:365px;">
<f:facet name="footer">
<af:panelBorderLayout id="pbl1"
inlineStyle="width:275px; height:27px;">
<f:facet name="start">
<af:group id="g1">
<af:panelBorderLayout id="pbl2"
inlineStyle="height:173px; width:219px;">
<f:facet name="right">
<af:group id="g3">
<af:spacer width="38" height="16"
id="s2"/>
<af:group id="g2">
<af:commandButton text="Log In"
id="cb1"
action="login_action()"/>
</af:group>
</af:group>
</f:facet>
</af:panelBorderLayout>
</af:group>
</f:facet>
</af:panelBorderLayout>
</f:facet>
<af:spacer width="179" height="65" id="s1"/>
<af:inputText label="Username" id="it1" showRequired="true"
requiredMessageDetail="Please Enter Your Username"
autoSubmit="true" autoComplete="on" required="true"/>
<af:inputText label="Password" id="it2" secret="true"
showRequired="true"
requiredMessageDetail="Please Enter Your Password"
autoSubmit="true" required="true"/>
</af:panelFormLayout>
</f:facet>
<f:facet name="top"/>
</af:decorativeBox>
</f:facet>
</af:panelStretchLayout>
</f:facet>
</af:decorativeBox>
</f:facet>
</af:panelStretchLayout>
</af:form>
</af:document>
</f:view>
</jsp:root>
My Managed Bean
package njchis;
import oracle.adf.view.rich.component.rich.input.RichInputFile;
import oracle.adf.view.rich.component.rich.input.RichInputText;
import oracle.adf.view.rich.component.rich.nav.RichCommandButton;
import java.sql.*;
import oracle.jdbc.OracleDriver;
public class GetUserName {
private RichInputText it1;
private RichInputText it2;
private RichCommandButton cb1;
public void setIt1(RichInputText it1) {
this.it1 = it1;
public RichInputText getIt1() {
return it1;
public void setIt2(RichInputText it2) {
this.it2 = it2;
public RichInputText getIt2() {
return it2;
public void setCb1(RichCommandButton cb1) {
this.cb1 = cb1;
public RichCommandButton getCb1() {
return cb1;
public String login_action() {
// Add event code here...
String user = this.getIt1().getValue().toString();
String pass = this.getIt2().getValue().toString();
Connection conn;
try {
conn = getConnection();
Statement stmt = conn.createStatement();
ResultSet rset = stmt.executeQuery ("SELECT 'x' FROM itdept.OFFICE_USERS where OFFICE_EMP_NO = '"+user+"' and OFFICE_PASS = '"+pass+"'");
if (rset.next()) {
conn.close();
return "good";
conn.close();
} catch (SQLException e) {
System.out.println(e);
return "bad";
public static Connection getConnection() throws SQLException {
String username = "itdept";
String password = "itdept";
String thinConn = "jdbc:oracle:thin:@0.0.0.0:1521:XE";
DriverManager.registerDriver(new OracleDriver());
Connection conn =
DriverManager.getConnection(thinConn, username, password);
conn.setAutoCommit(false);
return conn;
PAGE FLOWS
<?xml version="1.0" encoding="windows-1252"?>
<faces-config version="2.0" xmlns="http://java.sun.com/xml/ns/javaee">
<application>
<default-render-kit-id>oracle.adf.rich</default-render-kit-id>
</application>
<navigation-rule>
<from-view-id>/LogInPage.jspx</from-view-id>
<navigation-case>
<from-outcome>good</from-outcome>
<to-view-id>/Welcome.jspx</to-view-id>
</navigation-case>
</navigation-rule>
<managed-bean>
<managed-bean-name>GetUserName</managed-bean-name>
<managed-bean-class>njchis.GetUserName</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
</faces-config>Edited by: ck on Nov 8, 2012 1:31 AMhello,
thank you for your reply.
i will try your solution about the message but how about the navigation page to Welcome.jpfx when it returns GOOD?
I will try first this simple thing before im going to deep on adf. I think adf is MVC thing.Need more study first but before that i need to familiar with all LAYOUT components and the IDE itself.
thank you.
Edited by: ck on Nov 8, 2012 9:56 AM -
SSO filter problem in Self-Service page flows
Hi,
I need to integrate Self-Service with a Jasig CAS SSO-solution. It works fine except for pages like the product configurator, check out process etc. The Self-Service page flows for these have ceased to work since i implemented the Self-Service authentication filters.
This is a filter in the web.xml which you map to all pages that needs authentication.
An example:
In the product configurator,step 1, when you click "next" you dont get to the next step 2, but rather back to step 1. My suspicion is that, since all the steps are handled by the same jspx - the CAS authentication filter mess up since it intercepts the request to check if the user is logged in and then redirects the user back to the url given. But something is lost on the way here.
Does anyone have an idea for how to tackle this?
Thanks
JonteHere's a clarification of my problem:
I'm facing an issue when integrating the Jasig CAS SSO with Siebel Self-Service (which is an Oracle ADF application). When applying the CAS Authentication Filters, the navigation rules and page flows in the Self-Service application cease to work.
The Siebel Self-Service application is using adfFaces filter, adfBindings filter and the SelfService filter as controllers for the pages.
For the integration with the Jasig CAS, a client lib is installed in the Self-Service OC4J. This CAS Client provides an "Authentication Filter" that is defined in the web.xml. The pages in Self-Service that are to be protected by this authentication filter (the pages that needs user authentication in order to be accessed) are also mapped in the web.xml. This authentication filter checks the user against the CAS Server and sends back a ticket parameter with the URL if the user is logged in. This parameter is used to validate the login attempt, and on successful validation, the CAS server provides the username of the user to a bean called by the SelfServiceFilter in the Self-Service app.
My problem is that any JSF navigation on a page (navigation rules and page flows) cease to work as soon as a page is protected by the Authentication filter. One example would be during the check out process (which consists of several steps - several jspx pages). When you click “Next” on the first check out step, you are not redirected to step no 2, but to the same check out page as you started on.
Since the Authentication Filter protects all the pages involved, it will intercept any request to these pages, fetch the request URL, redirect to the CAS server for user authentication, and on successful authentication it will redirect the user back to the URL that was fetched by the Authentication Filter in the first place.
I have been looking into this, and I think that the JSF navigation rules etc, cease to work because the JSF page flows are being interrupted. When clicking “next” the page would normally post information to the life cycle of the requested page (which in some cases in this app, is also a postback to the same page). This information is then used when going through the life cycle of the new page. But when the CAS Authentication Filter intercepts the request, send the user to the CAS server and then redirect back to the page, this page life cycle is interrupted, or the necessary data is not attached in this “new” request.
Does anyone have an idea for how I can solve this issue?
Thanks!
Jonte -
Calling Webstart without interrupting HTML page flow
I am trying to invoke a JNLP link without interrupting
the HTML page flow. So on my first page i want to click
a link, which will invoke JNLP and will display the second
page, which says something like 'Starting..' and invokes
the 3rd page. The 3rd page keeps waiting on the app server
until the JWS app has logged in an than displays 'Logged In'.
I already managed the above by adding to the second page
<script>
open("xyz.com/xyz.jnlp","_blank");
</script>However I don't like that solution because it pops up a new window that will close asap, but causes unwanted flickering.
Any ideas?
Cheers,
rioSo, you want to submit an http request when an html element is clicked, and have the response be filled into a container on the page? This type of thing falls under the blanket of Ajax. There are a million Ajax implementations that can do this for you.
For instance, if you were using the prototype library, you would use the [Ajax.Updater|http://www.prototypejs.org/api/ajax/updater] javascript call. Then you could write something like <input type="radio" id="customerInfo" onclick="update(this.id)" />, and call your javascript update function. Any ajax library should know how to construct an xmlHttpRequest object, post it, and get the response back in some way you can use programatically.
How the web server generates the response (servlet or otherwise) is irrelevant. If this is new ground for you, you will want to read up on Ajax technologies, the xmlHttpRequest object, and javascript. -
I have one serious problem when handling exception in page flow. ie.
my code looks like,
// Generated by WebLogic Workshop
// Created on: Mon Dec 01 15:31:45 GMT+05:30 2003
// By: kshashishekar
package portlets.validation.validation;
import com.bea.wlw.netui.pageflow.FormData;
import com.bea.wlw.netui.pageflow.Forward;
import com.bea.wlw.netui.pageflow.PageFlowController;
import com.bea.wlw.netui.tags.html.TreeNode;
import javax.security.auth.login.FailedLoginException;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.*;
import com.login.CustomLogin;
import com.bea.p13n.controls.login.UserLoginControl;
* @jpf:controller struts-merge="struts-config-portlets-validation-validation2.xml"
* @jpf:message-resources resources="validation.validator.Message"
* @jpf:view-properties view-properties::
* <!-- This data is auto-generated. Hand-editing this section is not recommended.
-->
* <view-properties>
* <pageflow-object id="pageflow:/portlets/validation/validation/validationController.jpf"/>
* <pageflow-object id="action:begin.do">
* <property value="280" name="x"/>
* <property value="60" name="y"/>
* </pageflow-object>
* <pageflow-object id="action:validate1.do#portlets.validation.validation.validationController.ValidateForm">
* <property value="220" name="x"/>
* <property value="200" name="y"/>
* </pageflow-object>
* <pageflow-object id="action:logout.do#portlets.validation.validation.validationController.ValidateForm">
* <property value="120" name="x"/>
* <property value="100" name="y"/>
* </pageflow-object>
* <pageflow-object id="action-call:@page:validate1Page1.jsp@#@action:validate1.do#portlets.validation.validation.validationController.ValidateForm@">
* <property value="384,320,320,256" name="elbowsX"/>
* <property value="172,172,192,192" name="elbowsY"/>
* <property value="West_1" name="fromPort"/>
* <property value="East_1" name="toPort"/>
* </pageflow-object>
* <pageflow-object id="page:validate1Page1.jsp">
* <property value="420" name="x"/>
* <property value="180" name="y"/>
* </pageflow-object>
* <pageflow-object id="action-call:@page:Result.jsp@#@action:validate1.do#portlets.validation.validation.validationController.ValidateForm@">
* <property value="156,170,170,184" name="elbowsX"/>
* <property value="332,332,203,203" name="elbowsY"/>
* <property value="East_1" name="fromPort"/>
* <property value="West_2" name="toPort"/>
* </pageflow-object>
* <pageflow-object id="page:Result.jsp">
* <property value="120" name="x"/>
* <property value="340" name="y"/>
* </pageflow-object>
* <pageflow-object id="page:/error.jsp">
* <property value="40" name="x"/>
* <property value="180" name="y"/>
* </pageflow-object>
* <pageflow-object id="forward:path#success#validate1Page1.jsp#@action:begin.do@">
* <property value="316,350,350,384" name="elbowsX"/>
* <property value="52,52,172,172" name="elbowsY"/>
* <property value="East_1" name="fromPort"/>
* <property value="West_1" name="toPort"/>
* <property value="success" name="label"/>
* </pageflow-object>
* <pageflow-object id="forward:path#success#Result.jsp#@action:validate1.do#portlets.validation.validation.validationController.ValidateForm@">
* <property value="184,170,170,156" name="elbowsX"/>
* <property value="192,192,332,332" name="elbowsY"/>
* <property value="West_1" name="fromPort"/>
* <property value="East_1" name="toPort"/>
* <property value="success" name="label"/>
* </pageflow-object>
* <pageflow-object id="forward:path#success#validate1Page1.jsp#@action:logout.do#portlets.validation.validation.validationController.ValidateForm@">
* <property value="156,270,270,384" name="elbowsX"/>
* <property value="92,92,172,172" name="elbowsY"/>
* <property value="East_1" name="fromPort"/>
* <property value="West_1" name="toPort"/>
* <property value="success" name="label"/>
* </pageflow-object>
* <pageflow-object id="control:com.bea.p13n.controls.login.UserLoginControl#myControl">
* <property value="28" name="x"/>
* <property value="34" name="y"/>
* </pageflow-object>
* <pageflow-object id="formbeanprop:portlets.validation.validation.validationController.ValidateForm#username#java.lang.String"/>
* <pageflow-object id="formbeanprop:portlets.validation.validation.validationController.ValidateForm#password#java.lang.String"/>
* <pageflow-object id="formbean:portlets.validation.validation.validationController.ValidateForm"/>
* </view-properties>
public class validationController extends PageFlowController
* This is the control used to generate this pageflow
* @common:control
private UserLoginControl myControl;
// Uncomment this declaration to access Global.app.
// protected global.Global globalApp;
// For an example of page flow exception handling see the example "catch"
and "exception-handler"
// annotations in {project}/WEB-INF/src/global/Global.app
* This method represents the point of entry into the pageflow
* @jpf:action
* @jpf:forward name="success" path="validate1Page1.jsp"
protected Forward begin()
return new Forward( "success" );
* @jpf:action validation-error-page="validate1Page1.jsp"
* @jpf:forward name="success" path="Result.jsp"
* @jpf:catch method="exceptionHandler" type="Exception"
protected Forward validate1(ValidateForm aForm) throws Exception
com.bea.p13n.usermgmt.profile.ProfileWrapper var = myControl.login( aForm.username,
aForm.password, getRequest());
getRequest().setAttribute( "results", var );
return new Forward("success",aForm);
* Action encapsulating the control method :logout
* @jpf:action
* @jpf:forward name="success" path="validate1Page1.jsp"
* @jpf:catch message="not authenticated" path="/error.jsp" type="Exception"
public Forward logout( ValidateForm aForm )
throws Exception
myControl.logout( getRequest() );
return new Forward( "success" );
* @jpf:exception-handler
* @jpf:forward name="errorPage" path="/error.jsp"
protected Forward exceptionHandler( Exception ex, String actionName, String
message, FormData form )
String displayMessage = "An exception occurred in the action " + actionName;
System.out.println ("display message "+displayMessage);
getRequest().setAttribute( "errorMessage", displayMessage );
return new Forward( "errorPage" );
* FormData get and set methods may be overwritten by the Form Bean editor.
public static class ValidateForm extends org.apache.struts.validator.ValidatorForm
private String password;
private String username;
public void setUsername(String username)
this.username = username;
public String getUsername()
return this.username;
public void setPassword(String password)
this.password = password;
public String getPassword()
return this.password;
* added just to test validate (override) method.
public ActionErrors validate(ActionMapping map, HttpServletRequest req)
ActionErrors errors = null;
try {
errors = super.validate(map,req);
}catch (Exception e)
e.printStackTrace();
if (errors ==null) {
System.out.println ("errors = "+errors);
} else
System.out.println ("errors= "+errors);
return errors;
in the above code when we call "validate1" action, it will authenticate successfully
when we enter valid username and passowrd.
But when i enter invalid credentials page flow controller should execute "handleException"
method but at this time i am getting an error
Page Flow Unhandled Exception
Exception: java.lang.IllegalArgumentException
Message: argument type mismatch
A java.lang.IllegalArgumentException exception was thrown and not handled by any
Page Flow. See the console for the exception stack trace.
please help us on how to rectify this error.
thanks,
shashi
[validationController.jpf]Hi-
That may be on the right track, but the /index.jsp page gets displayed in the
portlet...I am still within the portal framework, so I don't think I am loosing
the context...
-Howie
"Khurram Zafar" <[email protected]> wrote:
>
you are most likely redirecting to the /error.jsp page and losing the
context for
your portal app. The index.jsp page may be defined as your <welcome-file>
in your
web.xml file. The best thing to do is to save the context before visiting
error.jsp
and then provide a link in error.jsp to go back. Look at javadoc for
PageURL for
obtaining the URL to a portal page, you can then save it in session of
pass it
to your error page.
"Howie Oakes" <[email protected]> wrote:
Hello-
I have a page flow portlet that I am testing some exception handling
on. Right
now when I catch an exception, I display the global /error.jsp page,
using the
@jpf:catch tag. The problem is when I refresh the page after viewing
the error
page, the pageflow always pulls up the /index.jsp page at the root of
the webapp.
I have to get a new session to see the original page flow.
This only happens when I am running the Jpf as a portlet...I don't see
this behavior
with it stand-alone.
I am not sure why the index.jsp page is being called...there are noreferences
to it in my jpf code...
thanks,
Howie -
Multiple Browsers with the same Page Flow
I have a legacy application that I am working on migrating to Weblogic. The
legacy application allowed the user to have multiple windows of the same
module open at the same time. Users found this useful if they wanted to look
at two different records in the same module. For example, if you had a
registration app and you wanted to look at Joe's registration information
and Sue's registration. Is it possible to have two browsers within the same
session open and pointing to the same RegistrationController.jpf?
Thank You.
MichelleI believe our problem is that our form beans are class members of the page
flow thus when you open another instance of the same controller the form
beans are overwritten. Our GUI is displayed as modules containing multiple
tabs with a form bean for each tab. The module has a controller, signifying
the page flow for the module. So, one record in a module will span multiple
tabs. We did not want to have one big form bean that is why we multiple
form beans. But it now looks like we will need to store these form beans
perhaps to the session in a collection identified by the window instance
they belong to.
We also need to do multiple different page flows but I don't think nested
page flows will not work here because the page flows would almost need to be
nested of each other. I guess you could almost think of as each module is
an independent application however some can be invoked by others.
<Rich Feit> wrote in message news:[email protected]..
Hi Michelle,
Yes, that should be just fine. That page flow will remain the "current
page flow" as requests from both browser windows hit it. The NetUI
runtime synchronizes the action methods, so you don't need to worry about
thread-safety within them.
There's also a way to have multiple different active page flows at the
same time, but in this case you don't need to do anything special.
Rich -
Multiple instances of Page Flows
I have a legacy application that I am working on migrating to Weblogic. The
legacy application allowed the user to have multiple windows of the same
module open at the same time. Users found this useful if they wanted to look
at two different records in the same module. For example, if you had a
registration app and you wanted to look at Joe's registration information
and Sue's registration. Is it possible to have two browsers within the same
session open and pointing to the same RegistrationController.jpf?
We currently have our form beans stored in the page flow which seems to
cause a problem as when we open another browser instance in the same session
pointing to the same page flow, the form beans from the first window are
overwritten. An approach we are possbily looking at is to store the form
beans in an object in the session and identify a set of form beans as
belonging to a particular window instance - perhaps by uniquely naming the
windows as they are opened.
Has anyone done this before with needing to have multiple instances of the
same page flow or multiple instances of different non-nested page flows open
at the same time?
MichelleHi Vijay,
Thanks for the reply, But that's not the right aproach.
I cannot change the application to stateless, Since the standard application where the page resides is statefull.
Also some of the business logic I cannot achive with stateless application
Regards
Geogy -
Workshop CRASHED while editing a page flow
Workshop Gurus -
Any clues on this bug. I get this error while editing pageflow. It just started
happening this morning.
I must say, WLW crashes gracefully. It allows me to report this message directly
to BEA, and then allows me to save my files. However, I do need a resolution to
this problem, hopefully soon.
java.lang.NullPointerException
at workshop.pageflow.model.ExternalPageFlow.refChanged(ExternalPageFlow.java:120)
at workshop.pageflow.model.DocumentEventAdapter.processModelObjects(DocumentEventAdapter.java:492)
at workshop.pageflow.model.DocumentEventAdapter.process(DocumentEventAdapter.java:177)
at workshop.pageflow.model.DocumentEventAdapter.elementChange(DocumentEventAdapter.java:123)
at com.bea.ide.element.ElementChangeSupport.fireListeners(ElementChangeSupport.java:253)
at com.bea.ide.element.ElementChangeSupport.fireElementChange(ElementChangeSupport.java:243)
at com.bea.ide.element.ElementChangeSupport.fireElementChange(ElementChangeSupport.java:219)
at com.bea.ide.document.DefaultDocument.fireElementChildRemoved(DefaultDocument.java:482)
at com.bea.ide.sourceeditor.DefaultSourceDocument.mergeComplete(DefaultSourceDocument.java:523)
at com.bea.ide.sourceeditor.DefaultSourceDocument.mergeMetadata(DefaultSourceDocument.java:610)
at workshop.sourceeditor.compiler.CompilerProject$MergeRunner.run(CompilerProject.java:1448)
at workshop.sourceeditor.compiler.CompilerSvcImpl$TreeMergeLock.runMerger(CompilerSvcImpl.java:161)
at workshop.sourceeditor.compiler.CompilerProject$4.run(CompilerProject.java:1498)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:178)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:448)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:197)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:144)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:136)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:99)
Thanks
Kunal MittalRaj -
Yes I am using SP2. I have had Workshop crash SEVERAL times when working with
page flows. Some sort of null pointer exception. The only good thing is that workshop
crashes gracefully, so I didn't lose any work that I was doing.
Thanks.
Kunal
"Raj Alagumalai" <[email protected]> wrote:
Kunal,
Can you try using SP2 ?
Thanks,
Raj Alagumalai
Backline Workshop Support
"Kunal Mittal" <[email protected]> wrote in message
news:[email protected]...
Workshop Gurus -
Any clues on this bug. I get this error while editing pageflow. Itjust
started
happening this morning.
I must say, WLW crashes gracefully. It allows me to report this messagedirectly
to BEA, and then allows me to save my files. However, I do need aresolution to
this problem, hopefully soon.
java.lang.NullPointerException
atworkshop.pageflow.model.ExternalPageFlow.refChanged(ExternalPageFlow.java:12
0)
atworkshop.pageflow.model.DocumentEventAdapter.processModelObjects(DocumentEve
ntAdapter.java:492)
atworkshop.pageflow.model.DocumentEventAdapter.process(DocumentEventAdapter.ja
va:177)
atworkshop.pageflow.model.DocumentEventAdapter.elementChange(DocumentEventAdap
ter.java:123)
atcom.bea.ide.element.ElementChangeSupport.fireListeners(ElementChangeSupport.
java:253)
atcom.bea.ide.element.ElementChangeSupport.fireElementChange(ElementChangeSupp
ort.java:243)
atcom.bea.ide.element.ElementChangeSupport.fireElementChange(ElementChangeSupp
ort.java:219)
atcom.bea.ide.document.DefaultDocument.fireElementChildRemoved(DefaultDocument
.java:482)
atcom.bea.ide.sourceeditor.DefaultSourceDocument.mergeComplete(DefaultSourceDo
cument.java:523)
atcom.bea.ide.sourceeditor.DefaultSourceDocument.mergeMetadata(DefaultSourceDo
cument.java:610)
atworkshop.sourceeditor.compiler.CompilerProject$MergeRunner.run(CompilerProje
ct.java:1448)
atworkshop.sourceeditor.compiler.CompilerSvcImpl$TreeMergeLock.runMerger(Compi
lerSvcImpl.java:161)
atworkshop.sourceeditor.compiler.CompilerProject$4.run(CompilerProject.java:14
98)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:178)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:448)
atjava.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.ja
va:197)
atjava.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java
:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:144)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:136)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:99)
Thanks
Kunal Mittal -
How to submit a form with checkboxes in a page flow?
I'm having some trouble with a form that contains several checkboxes, and
how to submit this form within a page flow...
I have a JSP page containing a form with N checkboxes. The value and
checked/unchecked status of each checkbox is generated from parsing an XML
document. Here is the (simplified) code:
<%@ taglib uri="http://java.sun.com/jstl/xml" prefix="x" %>
<netui:form action="doUpdate">
<x:forEach select="...">
<input type="checkbox" name="id"
<x:if ...>checked</x:if> value="<x:out ... />">
</x:forEach>
<netui:anchor formSubmit="true" action="doUpdate">Submit</netui:anchor>
<netui:anchor action="doCancel">Cancel</netui:anchor>
</netui:form>
When this form is submitted, the checkbox values are lost -- the following
code (in the action) produces an empty array:
String[] prefs = this.getRequest().getParameterValues("id");
I looked at the <netui:checkbox> tag, but it does not appear to give me a
way to set the state and value (unless I've missed something).
Can I submit a form without using a form bean? If I do use a form bean, can
I set the state and value from my JSP?
Any suggestions on how to do this (or insights into what I'm doing wrong)
are welcome...
-- CraigI am new to this, but I think this may solve your problem:
I am not sure if this is what you are looking for, but you can create a LinkedHashMap
with the req key/value pairs in the page-calling action in the pageflow and then
pass that via a getRequest().setAttribute("myCheckboxes",myCheckboxHashMap);
You can then access it in code using the optionsDataSource portion of the netui:checkBoxGroup
- ie
<netui:checkBoxGroup dataSource="{actionForm.thisCheckbox}" optionsDataSource="{request.myCheckboxes}">
Hope this helps!
m
"Craig Coffin" <craig+1268fbec@nfld-dot-com> wrote:
I'm having some trouble with a form that contains several checkboxes,
and
how to submit this form within a page flow...
I have a JSP page containing a form with N checkboxes. The value and
checked/unchecked status of each checkbox is generated from parsing an
XML
document. Here is the (simplified) code:
<%@ taglib uri="http://java.sun.com/jstl/xml" prefix="x" %>
<netui:form action="doUpdate">
<x:forEach select="...">
<input type="checkbox" name="id"
<x:if ...>checked</x:if> value="<x:out ... />">
</x:forEach>
<netui:anchor formSubmit="true" action="doUpdate">Submit</netui:anchor>
<netui:anchor action="doCancel">Cancel</netui:anchor>
</netui:form>
When this form is submitted, the checkbox values are lost -- the following
code (in the action) produces an empty array:
String[] prefs = this.getRequest().getParameterValues("id");
I looked at the <netui:checkbox> tag, but it does not appear to give
me a
way to set the state and value (unless I've missed something).
Can I submit a form without using a form bean? If I do use a form bean,
can
I set the state and value from my JSP?
Any suggestions on how to do this (or insights into what I'm doing wrong)
are welcome...
-- Craig -
Drag and drop STILL sketchy in Struts Page Flow
Struts Page Flow has been a major problem area in JDev since it was introduced, and I am still having some useability issues with it.
I CANNOT drag an application module method out, onto a data action; if the data action isn't one of the newest actions on the page. If the action has more than one target, (multiple "forwards") or just isn't one of the "newest" actions on the page, the GUI shows me dragging a the method from an app mod out onto the action, but no work is done once I drop it. I must delete the data action, and re-create it. This, in the mean time, will overwrite any data action class I had defined originally.
This needs to be fixed very soon, as it has been in every build of 10g that I have dealt with.Ok. To reproduce the bad drag and drop behavior:
Create a Misc Data page, name it "Home"
Drag a data page out, name it "A", and put stuff on it. (Doesn't need to be complex).
Drag an action out, name it "B".
Drag another action out, name it "C"
Connect a forward from "A" to "B", connect a forward from "B" to "C". Connect a forward from "C" to "Home".
Connect a "fail" forward back, from "B" to "A".
Try to drag a method off of an applicaiton module to Action "B". It should not work.
Maybe you are looking for
-
Keyboard / trackpad forces me to cold reboot
It seems to be happening now that every now and then the keyboard and/or trackpad will stop working either entirely or partially. The power button is never affected by this and the software seems to continue to run normally. Either way it always requ
-
CENVAT Entries in J1IEX & MIRO
Dear All, Thanks for ur Valuable Contribution. While J1IEX, i have following Entries 2070340 CENVAT Input BED Debit 0.20 2070340 CENVAT Input BED Debit 20.00 2070340 CENVAT Input BED Deb
-
I have ios 7.0.6 on my iphone 5. I've noticed recently since the update that the events on my iPhone Calendar does not all sync to iCal on my MacBook running os 10.6.8. Some syncs, but a lot don't (and not calendar-specific either). I tried rebootin
-
Integration to current enviroment presentation.
I have a presentation on integration to our environment. Pros and cons and etc. If anyone has done this for upper management and can give me a head start on it it would be great. I'm currently running a 2007 environment looking into integrate iPhone
-
Rebates Paid to Parent for Sales to Subsidiary
When dealing with a group of related customers, all rebates associated with sales to any one of the group should be paid to the parent. How do I configure so that the rebate is accrued at the time of sales to the child customer but is recorded again