Page Flow db vs java Control  db access

I am a real newbie here and I wanted to ask some design questions.
Primarily, I am designing a page flow that hits a backend server. Users fill out
forms, and it updates what they are doing.
Should I have the db control directly in the pageflow, or should I send the req
to a java control that then has the db control? The latter seems to me to be taking
redundant steps.
thanks,
m

It does, and it makes a LOT of sense. Thanks!!!
"Morgan" <[email protected]> wrote:
>
Hi Matt,
The BEA guys seem to be busy this week, but I think I can actually answer
this
question.
It sounds like you have a pretty basic web app, maybe even started from
the RowSet
Control wizard?
From my understanding of Model, View, Controller, struts and Workshop,
it sounds
like in your case you would probably want to use the control directly
in your
pageflow. Most likely you will get a RowSet out of your control for
a query and
then push that out to some type of tag that can work with it or some
variation
along those lines. If you need to perform significant business logic
on the
data before adding it to the database, or after retrieving it and before
presenting
it, then I think it would be a good idea to encapsulate that business
logic in
another class or control. Significant is a relative term I suppose,
but changing
a value from upper to lower case or something simple I'd probably just
handle
in the Controller or with a formatter tag. If you had to correlate information
from multiple rows, analyze it, create totals, and statistics, I would
probably
build a class to handle that logic so that the controller just made the
decision
on where to send results and where to send information collected.
I hope that helps,
Morgan
"Matt Mcknight" <[email protected]> wrote:
I am a real newbie here and I wanted to ask some design questions.
Primarily, I am designing a page flow that hits a backend server. Users
fill out
forms, and it updates what they are doing.
Should I have the db control directly in the pageflow, or should I send
the req
to a java control that then has the db control? The latter seems tome
to be taking
redundant steps.
thanks,
m

Similar Messages

  • Java Controls, JSPs, Servlets and Filters

    Hi, everybody.
    How can i invoke a custom java control from a JSP ?
    How can i invoke a custom java control from a Servlet or Filter ?
    I've tried using WlwProxy.create(controlInterfaceClass, request) but i don't know if this is the "official and recommended" way of do it. By the way, invocation is falling because Workshop is trying to find a .jcx file (i have only a .jcs).
    Thanks in advance.

    Hi Vimala.
    All the business logic of my project will be implemented as Java Controls (that's the reason of my questions about Controls' accessibility):
    1. From a JSP
    A) I can use netui tag <netui-data:callControl>
    B) I can call a page flow to execute Java Control and to populate http request (or session) within some Java Beans. After this, the JSP will "consume" these Java Beans.
    2. From init method of a startup Servlet
    I can't call a Java Control from here. Can i implement analogous feature using Builtin Timer Control ?
    3. From service (doGet/doPost) method of a "ordinary" Servlet
    I can call a page flow to execute Java Control and to populate http request (or session) within some Java Beans. After this, the Servlet will "consume" these Java Beans.
    4. From filter method of a Servlet Filter
    This is the "trickest" one, but i really need to access business logic from here.
    I've found an way (and i'm not proud of how i'm doing this):
    i) The filter will populate a request attribute within information about which method of which control will be executed. Method parameters values will be stored too;
    ii) The filter will "forward" request to a Page Flow, using a HttpServletRequestWrapper and a "dummy/empty" HttpServletResponseWrapper. This is really odd. I'm not sure if a filter should try to "forward" or to "include" another webapp resources. When doing this, you should be aware about issues like "recursion" and configurations like filter-dispatched-requests-enabled (http://edocs.bea.com/wls/docs90/webapp/progservlet.html#160016);
    iii) The Page Flow will receive the new request, "unpack" invocation data, execute appropriate Java Control, "pack" the result in the http request and forward to an "empty" JSP;
    iv) The "execution control" will be returned to the filter. This filter will "discard" the contents of HttpServletResponseWrapper, "unpack" the result data out of the http request and use it.
    To "hide" all this mess of my filters and Page Flows, the filters will use a "dynamic proxy" to act as "Page Flow clients" (this proxy will look like as an ordinary Java Control to my filters). The Page Flows will use an helper class to store Java Controls (at onCreate lifecycle method), to use them (at begin method) and to discard/release them (at onDestroy lifecycle method).
    I've tested this and it has worked. I'm not sure about performance and multithread behaviour of this solution.
    I'm accepting any suggestion (official or "unofficial") about how to make this easier.
    Thanks !!!
    Sample code:
    == JavaControlClientProxy.java ==
    public Object invoke(Object proxy, Method method, Object[] parameters)
        throws Throwable {
        Object result = null;
        if (LOG.isDebugEnabled()) {
            LOG.debug("before: " + method.getName());
        try {
            HttpServletRequestWrapper newRequest =
                 new HttpServletRequestWrapper(this.request);
            HttpServletResponseWrapper newResponse =
                 new HttpServletResponseWrapper(this.response);
            InvocationData invocationData = new InvocationData();
            invocationData.setCaller(this.javaControlCaller);
            invocationData.setTarget(this.javaControlInterface);
            invocationData.setTargetMethod(method);
            invocationData.setParameters(parameters);
            newRequest.setAttribute(InvocationData.ATT_NAME, invocationData);
            try {
                RequestDispatcher dispatcher = this.request
                    .getRequestDispatcher(this.javaControlServerPath);
                /* include doesn't work (.jpf ?) */
                dispatcher.forward(newRequest, newResponse);
                invocationData = (InvocationData) newRequest
                    .getAttribute(InvocationData.ATT_NAME);
                if (invocationData.getException() != null) {
                    throw invocationData.getException();
                } else {
                    if (invocationData.getReturnValue() != null) {
                        result = invocationData.getReturnValue();
            } finally {
                newResponse.getWriter().close();
                newResponse.getOutputStream().close();
            return result;
        } finally {
            if (LOG.isDebugEnabled()) {
                LOG.debug("after: " + method.getName());
    }== ControlCallController.jpf ==
    * This method represents the point of entry into the pageflow
    * @jpf:action
    * @jpf:forward name="success" path="empty.jsp"
    protected Forward begin()
        try {
            this.controlServer.execute(getRequest());
        } catch (IllegalArgumentException e) {
            try {
                /* Avoid external access to this resource. */
                getResponse().sendError(HttpServletResponse.SC_NOT_FOUND);
            } catch (IOException e1) {
                throw new UnhandledException(e1);
            throw e;
        return new Forward("success");
    protected void onCreate() throws Exception {
        super.onCreate();
        this.controlServer = new JavaControlServer();
        this.controlServer.addControl(MyControl1.class, this.myControl1);
        this.controlServer.addControl(MyControl2.class, this.myControl2);
    protected void onDestroy(HttpSession arg0) {
        this.controlServer = null;
        super.onDestroy(arg0);
    }== JavaControlServer.java ==
    public void execute(final HttpServletRequest request)
        throws IllegalArgumentException {
        InvocationData invocationData = (InvocationData) request
            .getAttribute(InvocationData.ATT_NAME);
        if (LOG.isDebugEnabled()) {
            LOG.debug("InvocationData " + invocationData + ".");
        if (invocationData == null) {
            throw new IllegalArgumentException("Http request doesn't contain "
                                               + InvocationData.ATT_NAME + ".");
        Control targetControl = (Control) this.controlMap.get(invocationData
                                                              .getTarget());
        if (targetControl == null) {
            throw new IllegalArgumentException("Missing control "
                                               + invocationData.getTarget() + ".");
        Method method = invocationData.getTargetMethod();
        try {
            Object returnValue = method.invoke(targetControl, invocationData
                                               .getParameters());
            invocationData.setReturnValue(returnValue);
        } catch (IllegalArgumentException e) {
            LOG.error("Could not invoke method", e);
            throw new UnhandledException(e);
        } catch (IllegalAccessException e) {
            LOG.error("Could not invoke method", e);
            throw new UnhandledException(e);
        } catch (InvocationTargetException e) {
            LOG.debug("An error has ocurred when invoking method", e);
            invocationData.setException(e.getCause());
        request.setAttribute(InvocationData.ATT_NAME, invocationData);
    }

  • Set data in page flow begin action?

    Hi,
    I want to set some data in my page flow's begin action, and then access this data in a JSP. In my begin method, I have:
    * @jpf:action
    * @jpf:forward name="index" path="index.jsp"
    protected Forward begin()
    getRequest().setAttribute("foo", "mydata");
    return new Forward("index");
    then, in my index.jsp, I have:
    <netui:label value="{request.foo}" />
    but the JSP is displaying an empty value (i.e., blank).
    Is there something about the page flow begin action such that this can't be done there?
    Thanks,
    Jim

    Hi,
    For my sanity's sake, I tried creating another small test web app in Workshop, and just added code to my begin action. This time, the display of {request.foo} worked.
    So, it looks like there is SOMETHING in my original web app that is causing the data binding to stop working.
    I've been comparing the small test web app to my original web app, and the only thing that is significantly different is at the beginning of the JPF, I have the declaration for a control:
    public class Controller extends PageFlowController
    * @common:control
    * @jc:ManualConfiguration UserIdAttribute="uid" UserBaseDN="dc=whatever,dc=com" Port="389" Host="foo.whatever.com"
    private AccountManager accountManager;
    * @jpf:action
    * @jpf:forward name="index" path="index.jsp"
    protected Forward begin()
    getRequest().setAttribute("foo", "foodata");
    return new Forward("index");
    Would having that control declaration before the begin() method be causing this problem?
    Any other ideas about why this might be happening?
    Thanks,
    Jim

  • Page Flow and Java Control interaction

    Hi everybody !
    Even after to read some documents like
    http://dev2dev.bea.com/pub/a/2004/06/wlw_internals.html
    and
    http://dev2dev.bea.com/pub/a/2004/01/jones.html
    i still didn't get what is really happening "behind the scenes" between Page Flows and Java Controls (Workshop 8.1). I would be glad if anyone could send to me more detailed documentation or explanation about this subject.
    How can a Java Control to stand behind a Stateless Session Bean (GenericStatelessSLSB) and still to keep its internal state (instance variables) consistent ? How can a statefull Java Control to remain statefull being accessed by a stateless component (the EJB) ? Or is the source code of a Java Control (the JCS file) kept by the Page Flow and sent to EJB for its execution ?
    Thanks in advance.

    Hi Daniel
    I have attached a doc I created that explains what happens behind the scenes
    when a pageflow call a JCS va a JWS calling a JCS.
    Can you please go through the document and let me know any questions you may
    have?
    Thanks
    Vimala
    <Daniel Lima> wrote in message news:[email protected]..
    Hi everybody !
    Even after to read some documents like
    http://dev2dev.bea.com/pub/a/2004/06/wlw_internals.html
    and
    http://dev2dev.bea.com/pub/a/2004/01/jones.html
    i still didn't get what is really happening "behind the scenes" between
    Page Flows and Java Controls (Workshop 8.1). I would be glad if anyone
    could send to me more detailed documentation or explanation about this
    subject.
    How can a Java Control to stand behind a Stateless Session Bean
    (GenericStatelessSLSB) and still to keep its internal state (instance
    variables) consistent ? How can a statefull Java Control to remain
    statefull being accessed by a stateless component (the EJB) ? Or is the
    source code of a Java Control (the JCS file) kept by the Page Flow and
    sent to EJB for its execution ?
    Thanks in advance.

  • Accessing remote jcs/jcx controls from page flows

    Hi,
    Is there a standard way to access remote jcx/jcs controls from page flows ?
    If i am correct the call to the dispatcher bean is a remote call , so can we run jcx/jcs controls on a different machine from where jpfs are running.
    I am just trying to dig into workshop framework to understand this , any pointers would be of great help.
    Thanks
    Varun

    Thanks for the tip. Unfortunately, I've tried this and there was no change.
    Here's how I tried to implement it:
    1. Edited the HTTP Configuration page in the Web Service wizard. Added http://portletserver/portlets/portletfolder/portlet.aspx. I've looked at this a million times to make sure there aren't any typos.
    2. Beforehand, I added http://portletserver/portlets/portletfolder/. to the HTTP Configuration page. I thought that would gateway everything in the portlet folder... Is that an incorrect assumption?
    3. I also tried to modify the .aspx page by adding a pt:url transformer tag to the target attribute of the form. The portlet works but it is still prompting with the pop up.

  • Using a control implimentaion file in BEA page flows?

    I'm using BEA Weblogic 9.2 and I've created a custom JDBC control to use in my project with page flows.
    My control has 4 files:
    1.) myModel.java: contains the class that represents the table.
    2.) myControl.java: the interface for the control.
    3.) myControlDB.java: public interface that extends jdbcControl and contains the basic operations for the database. No actual methods, just sql commands in the annotations.
    4.) myControlImpl.java: Contains the business logic for the control and has the @ControlImplimentation annotation.
    However, I'm not sure what purpose the "control implimentation" file servers. I can't use it in the page flows, and I can't add it to the "referenced controls" list.
    How do I use this control implementation in my page flows?

    Hi,
    Does your custom control appear in the insert -> control -> existing control option ?
    Can you also verify that the corresponding method is created in the custom control interface
    In the source view, place the cursor on the custom control method, and enter Ctrl + 1, select the create in super type option. This should create the corresponding method in the interface.
    I've also listed the link to our documentation which explains in detail about using database controls
    http://e-docs.bea.com/workshop/docs92/ws_platform/controls/system/jdbc/navDatabaseControl.html
    -Raj

  • UIX/XML BC4J - Controlling page flow in event handlers

    We have an event handler that executes some data processing using bc4j tags, and need to redirect the flow to another page, based on the value of some parameters. For example, we have a checkbox Prepare for another insert, and we want to check for its state in the event handler to determine which page to display.
    We tried the following code
    UIX page event handler:
    <event name="saveEvent" >
         <bc4j:findRootAppModule name="TipoPunteggioViewAppModule" >
              <bc4j:findViewObject name="TipoPunteggioView" >
                   <bc4j:findRow name="CreateTipoPunteggioView" >
                        <bc4j:setPageProperty name="keyTipoPunteggio" >
                             <bc4j:stringKey />
                        </bc4j:setPageProperty>
                        <bc4j:setAttribute name="FlgObsoleto" />
                        <bc4j:setAttribute name="Firma" />
                        <bc4j:setAttribute name="TitTipoPunteggio" />
                        <bc4j:insertRow/>
                        <bc4j:commit/>
                        <bc4j:executeQuery/>
                        <ctrl:method class="com.websiteitalia.valutazioni.handlers.Handlers"
                             method="anotherInsertEventHandler" />
                   </bc4j:findRow>
              </bc4j:findViewObject>
         </bc4j:findRootAppModule>
    </event>
    Java method event handler:
    public static EventResult anotherInsertEventHandler(BajaContext bCtx,
                                       Page page,
                                       PageEvent event) {
         // AnotherInsert is the name of the checkbox on the page
    if ("on".equals(event.getParameter("AnotherInsert"))) {
              return new EventResult(page);
         } else {
              return new EventResult(new Page("ListPage"));
    When we return the same page, things work fine, but when we return another page we get an ArrayIndexOutOfBoundException. We have also noticed that if we return a simple page, without data scopes and bc4j tags, we get the correct result. We are probably wrong in the manner we do the redirect inside of a java event handler, because seems that the page we return is not completely processed.
    Can anyone explain the available techniques to control the page flow, using UIX XML tags or Java APIs alone or both of these together? For example, how can be replicated the <ctrl:go> behavior using Java APIs?

    The UIX page works correctly if loaded directly, the error takes place only when we redirect in this manner from a page that has a different application module / view object scopes. In fact, when we redirect to a page that have the same scopes of the first (or when the second page has not scopes at all the simple page) the error doesnt occur. Thats why we suppose that some step of the page rendering process arent executed correctly, it seems that the new page still finds some of the old page (the scopes)..
    To redirect to a page from a java event handler we have returned an event result with the next page (see above post for a code snippet), is this the correct way? Can we simulate the ctrl:go tag from the java code (with the redirect=true option)? There are any other?

  • 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

  • Calling Service Control from Page Flow

    In Workshop for Weblogic Platform v10.0, we have a web service control in a page flow.
    Although the web service call succeeds (as evidenced by a TcpMon monitor), the control method always returns null.
    I'm guessing that although the call looks synchronous, it's actually behaving asynchronously - returning immediately with null.
    Is this perhaps related to the particulars of calling controls from a Page Flow environment? Is it a bug in v10 of Workshop (Eclipse-based?
    Thanks for any ideas!
    - Rob
    ps: Here's the control interface and using class:
    package controls;
    import com.bea.control.ServiceControl;
    import org.apache.beehive.controls.api.events.EventSet;
    import org.apache.beehive.controls.api.bean.ControlExtension;
    @ServiceControl.Location(urls = {"http://LECAP1.lan.us.ray.com:9905/xsltTransform_vs0"})
    @ServiceControl.HttpSoapProtocol
    @ServiceControl.SOAPBinding(style = ServiceControl.SOAPBinding.Style.DOCUMENT, use = ServiceControl.SOAPBinding.Use.LITERAL, parameterStyle = ServiceControl.SOAPBinding.ParameterStyle.BARE)
    @ServiceControl.WSDL(resourcePath = "controls/cesXsltTransform.wsdl", service = "xsltTransform_vs0")
    @ControlExtension
    public interface xsltTransform_vs0ServiceControl extends ServiceControl
    static final long serialVersionUID = 1L;
    public java.lang.String xmlTransform(com.raytheon.schemas.ces.transformationservices.xmlschema.schema.TransformInput transformInput_arg);
    /** This event set interface provides support for the onAsyncFailure event.
    @EventSet(unicast=true)
    public interface Callback extends ServiceControl.Callback {};
    @Control
    private xsltTransform_vs0ServiceControl xsltTransform_vs0ServiceControl1;
    com.raytheon.schemas.ces.transformationservices.xmlschema.schema.TransformInput transformInput_arg = form
                        .getTransformInput_arg();
    String xmlTransformResult = xsltTransform_vs0ServiceControl1
                        .xmlTransform(transformInput_arg);

    Strange -- the PageFlowJspFilter adds no-cache headers to the response, so
    if you're forwarding to a JSP from the action, then the browser shouldn't be
    caching the result. What's in the URL bar in the case where your request is
    getting cached?
    "Neeraj Harlalka" <[email protected]> wrote in message
    news:3ff993bd$[email protected]..
    >
    Richard -
    Ok. I dug deeper into the issue and now my problem is that although theaction
    is getting called correctly, it seems to execute from a cache. The actiondoes
    not get executed the second time.
    Any ideas?
    Neeraj
    "Richard Feit" <[email protected]> wrote:
    Hmm... I'm not sure why you'd get that. Can you post the relevant JSP
    code?
    Also, are you able to hit the other page flow directly from a browser?
    Rich
    "Neeraj Harlalka" <[email protected]> wrote in message
    news:[email protected]..
    Hi Richard -
    I get an error saying cannot find the begin.do action.
    Thanks
    Neeraj
    Richard Feit" <[email protected]> wrote:
    Hello Neeraj,
    This should work:
    <netui:anchor
    href="/someOtherFlow/SomeOtherFlowController.jpf">someOtherFlowController.
    j
    p
    f</netui:anchor>
    What happens when you do this?
    Rich
    "Neeraj Harlalka" <[email protected]> wrote in message
    news:3fda39df$[email protected]..
    I read the other posts on how to call one page flow from a jsp
    that
    belongs to
    another pageflow. However the last suggestion posted - use the netuianchor tag
    with href, also does not work.
    Any other solution?
    Thanks
    Neeraj

  • Java.lang.StackOverflowError on Go To Code in Page Flow Diagram

    If I select Go To Code in a Struts Page Flow Diagram with a Data Page, the cursor changes to a hourglass and back to a pointer and nothing else happens. The java window reports a java.lang.StackOverflowError.
    Normally, I would expect the create class wizard that helped me to subclass oracle.adf.controller.struts.actions.DataActionMapping, which was the case a few days ago.
    Any idea what could be wrong ?

    I found the reason myself: If the UIX project has a dependence to a BC4J project Project1 containing the AM Module and Project1 by itself has a dependency to a BC4J project Project2 containing the EO, this error shows up. Simply remove the dependency (Project Properties - Dependencies), and the Page Flow Modeler behaves as expected.
    Another detail: Doubleclicking on the Data Page instead of Context Menu - Go To Code opens a window showing BME-99009: An error has occured in the Java VM reporting the same short stack trace java.lang.StackoverflowError.

  • Creating control flow graph in java using list

    i am making control flow graph in java by making use of stacks and list but i am unable to get to previous nodes of the current node.
    how to code for the same and make a graph that is randomly generated.

    Don't double post. I've removed the thread you started in the Java Desktop Application forum 4 minutes after this one, with the identically same question.
    db

  • JSR for Java Page Flow?

    Hello there,
    I would love to know if there is or will be a JSR for the Java Page Flow
    technology that we have in Workshop. If not. what are the reasons behind this?
    I see there is JSR207 for the Process Definition stuff for integration, but what
    about page flow?
    thanks,
    frank

    Frank,
    XML beans stand alone is available at
    http://workshop.bea.com/xmlbeans/index.jsp
    Thanks
    Raj Alagumalai
    WebLogic Workshop Support
    "Thomas Cook" <[email protected]> wrote in message
    news:[email protected]..
    Frank,
    Speaking for page flows, there will soon be an Ant compiler and
    supporting libraries to allow page flows to run on Tomcat and possibly
    other standards-based products as well. Whether there will be any other
    standardization push for page flows, such as a JSR, remains to be
    determined.
    I can't say anything for XML beans other than it's currently freely
    available from BEA.
    Thomas
    frank wrote:
    aehm, I missed something: XML Beans
    Also, does anyone know which way of standardization this piece of
    technology will
    go?
    I understand it makes sense to merge it with jax-b over time, but arethere any
    >>
    jsr out yet or anything else?
    thanks a lot for any information!
    frank
    "Frank" <[email protected]> wrote:
    Hello there,
    I would love to know if there is or will be a JSR for the Java Page Flow
    technology that we have in Workshop. If not. what are the reasons behind
    this?
    I see there is JSR207 for the Process Definition stuff for integration,
    but what
    about page flow?
    thanks,
    frank

  • Java page flow jpf forward to dynamic url

    How to forward to a dyamic url from a page flow action method

    use new Forward (URI uri,
    boolean doRedirect)
    with redirect as false
    Edit : If the path isnt within your webapp you will have to do a redirect (you can use the constructor with the URL form)
    regards
    deepak
    Edited by: deepshet on Sep 2, 2009 3:38 PM

  • Page flow exception

    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

  • How do I reuse a custom java control in another project?

    Relatively simple question, but I am having a lot of trouble with this. Documentation
    alludes to this being possible and easy, but never says how (and the only tutorials
    I can find describe creating a custom java control in the same project where they
    are used):
    "You can design a custom control for use in one project, or you can design a custom
    control for easy reuse in multiple projects." (from WLS docs on Java Controls)
    "When the control project builds, all of the controls and associated files are
    compiled into a single jar file and pushed onto the classpath of the containing
    application for immediate use and testing by other projects in the application.
    This jar is self-contained and can be moved to any other application by adding
    it to the application’s Library folder. Appropriately marked controls in the Library
    it will automatically appear on the user’s palette, ready for incorporation into
    an application." (from dev2dev article on controls, P. Hussey)
    I have a Workshop application which contains a few projects. One project is a
    component project, another is a web project. I created a custom java control in
    the control project and built it (JAR appeared in the Libraries folder). Now I
    open up the page flow in my web app project, and try to drag the java control
    onto my page flow - but I get an eror that the control must reside in the same
    project! It does not automatically appear on my palate, so if I go over to the
    palate on the right, and try to "add control" I only get a list containing the
    BEA controls - no custom controls are listed.
    What am I doing wrong? How can I incorporate my custom control into a web project?
    I don't want to move the control in the web project, since this contradicts the
    concept of a separate shared library. I should be able to build a library of controls
    and reuse them in our web projects right?
    -Bob

    Please disregard... I got it to work. For some reason I had to close Workshop,
    restart it, then I reloaded the application, rebuilt the control project, and
    now my control appears in the list of controls and can be easliy added to the
    palette.
    "Bob" <[email protected]> wrote:
    >
    Relatively simple question, but I am having a lot of trouble with this.
    Documentation
    alludes to this being possible and easy, but never says how (and the
    only tutorials
    I can find describe creating a custom java control in the same project
    where they
    are used):
    "You can design a custom control for use in one project, or you can design
    a custom
    control for easy reuse in multiple projects." (from WLS docs on Java
    Controls)
    "When the control project builds, all of the controls and associated
    files are
    compiled into a single jar file and pushed onto the classpath of the
    containing
    application for immediate use and testing by other projects in the application.
    This jar is self-contained and can be moved to any other application
    by adding
    it to the application’s Library folder. Appropriately marked controls
    in the Library
    it will automatically appear on the user’s palette, ready for incorporation
    into
    an application." (from dev2dev article on controls, P. Hussey)
    I have a Workshop application which contains a few projects. One project
    is a
    component project, another is a web project. I created a custom java
    control in
    the control project and built it (JAR appeared in the Libraries folder).
    Now I
    open up the page flow in my web app project, and try to drag the java
    control
    onto my page flow - but I get an eror that the control must reside in
    the same
    project! It does not automatically appear on my palate, so if I go over
    to the
    palate on the right, and try to "add control" I only get a list containing
    the
    BEA controls - no custom controls are listed.
    What am I doing wrong? How can I incorporate my custom control into a
    web project?
    I don't want to move the control in the web project, since this contradicts
    the
    concept of a separate shared library. I should be able to build a library
    of controls
    and reuse them in our web projects right?
    -Bob

Maybe you are looking for

  • Why does my safari close when I try to open a new safari window/tab with the white plus sign?

    Every time I hit the white plus sign the whole window closes. I just got this ipad from a friend who erased it. This has happened since I set it up and I have tried resetting it twice. Please help.

  • Backing up my hard drive

    I've been told I can back up my hard drive on multiple DVDs using Disk Utility. I tried making a disk image, but I get an error that there is no room on the hard drive. I tried making a burn folder, but I get an error saying "the disc could not be us

  • Blackberry bold 9780

    I am having a problem with my phone while using Wi-Fi. It shows connected and even whatsapp is working but I am unable to browse anything and whenever I try to browse it gives me an error unable to find requested server.

  • Web pages pop up in background?

    while on line certain web pages pop up , like ask? words , mevio?

  • Varicam slo-mo question

    We shot a doc short recently on the Varicam. We shot two ways. #1. Most of the footage was shot for a 24 fps (23.98) timeline in FCP. But the Varicam ALWAYS records 60fps (59.94), so it fills the 60fps stream with duplicate frames that can be removed