Struts basics

can anybody help me
i am getting error while compiling my class CustomerAction ....
i alrdy have compiled my acrionform class i.e... CustomerForm
my classes are in WEB-INF/src/net
the error is
CustomerAction.java:5: cannot find symbol
symbol : class CustomerForm
location: package net
import net.CustomerForm;
^
CustomerAction.java:26: cannot find symbol
symbol : class CustomerForm
location: class net.CustomerAction
CustomerForm custForm = (CustomerForm) form;
^
CustomerAction.java:26: cannot find symbol
symbol : class CustomerForm
location: class net.CustomerAction
CustomerForm custForm = (CustomerForm) form;
code
package net;
import net.CustomerForm;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;
public class CustomerAction extends Action
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
          throws Exception
if (isCancelled(request)){
System.out.println("The cancel operation Performed");
return mapping.findForward("mainpage.jsp");
CustomerForm custForm = (CustomerForm) form;
String firstname=custForm.getFirstname();
String lastname=custForm.getLastname();
System.out.println("Customer Firstname is " + firstname);
System.out.println("Customer Lastname is " + lastname);
ActionForward forward=mapping.findForward("success");
return forward;
i have alrdy compiled the CustomerForm.jave and placed the clas file in side the same folder

i think u didn't compile ur CustomerForm or the class is misplaced u have to place the class of ur CustomerForm "CustomerForm.class" in the directory were the error message point.. getch()?

Similar Messages

  • Struts basics - urgent!

    Hi,
    I'm currently put into a project using struts. Earlier i've developed an application with a framework similar to MVC II in JSP and sevlets and so it'snot much difficult for me to comprehend the architecture. But as far as the usage is concered, I couldn't configure my tomcat server successfully for running a basic struts application.
    How to configure tomcat for using struts. What is the basic concept involved?
    I'm now using a pdf file - Mastering jakarta struts by Goodwill for learning struts. Is there any other better resource which deals from the very basics?
    Please help because the project is going to be started soon!
    Thanks in advance!!
    - Regards,
    R. Yogaesh.

    You don't need to configure Tomcat itself ... all the configuration for your struts application will be in the struts-config.xml file (beans, actions etc..)
    If you look in your struts\webapps directory there a some example applications in there, just place the .war file in your tomcat/webapps directory and tomcat should automatically build the app for you.
    A good resource for getting your head round struts is
    http://javaboutique.internet.com/tutorials/WebAppSTRUTS/index.html
    Hope this has helped!

  • ADF Faces and Struts confusion

    Hello alltogether,
    I'm developing with struts for some years now but I'm completely new to ADF and Faces.
    I want to integrate a "simple" ADF Faces page with one TreeTable to an existent struts application.
    The idea I had is to create an action within the struts-config.xml inheriting from the DataAction or DataForwardAction in order to load and prepare the data for the TreeTableModel.
    When I call the ADF Faces page using the .do call for the Action created (I have to prepend /faces/ to the normal Action call) the page is rendered correctly but I do not enter my derived Action class at all.
    So my question is: How is the preferred way to fill the Model of the TreeTable before the ADF Faces page is rendered. The necessary datasource is obtained from a struts basic action throughout the whole application.
    I'm now struggeling with the pageDef.xml (using the documentation from here: http://www.oracle.com/technology/documentation/jdev/b25947_01/index.html) but I'm really lost since I do not understand what happens when and how resp. why it happens.
    All I want is the following: Prepare and load the necessary TreeModel before the page gets rendered (the appropriate model depends on a parameter which is given in the request that is send and which successfully response should be the ADF Faces page with the TreeTable filled with the appropriate data)!
    Can please somebody give me the necessary piece of advice?
    I'm trying for almost a day now!
    Many thanks in advance
    Best Regards

    Dear Mr. Vohra, It is not yet Clear whether we can use ADF Faces with Tiles,
    With out using Facelets, of MyFaces?
    Some users say they are using these two frameworks, but still complain of problems.
    And you are suggesting to use facelets with ADF faces .
    Can't we use ADF Faces and Tiles with out any other intermediate technology?
    Thanking you,
    Samba.
    Message was edited by:
    saasira

  • Basic struts config question

    Hi,
    What does the "input" attribute of the struts-config.xml do?
    Thanks

    Check out the [url http://struts.apache.org/dtds/struts-config_1_2.dtd]struts-config dtd[ur;]. It documents each of the attributes/tags you can use in the xml file.
         input           Module-relative path of the action or other resource to
                         which control should be returned if a validation error is
                         encountered. Valid only when "name" is specified. Required
                         if "name" is specified and the input bean returns
                         validation errors. Optional if "name" is specified and the
                         input bean does not return validation errors.Simply put, it specifes the jsp page to return control to when validation fails - ie return you to the input screen, display errors and let you correct them.
    Cheers,
    evnafets

  • Basic question about Struts

    Hello,
    I am going through the struts sample application (struts-example.war) and I am trying to understand the firtst global forward. Here it is:
        <forward   name="logoff"               path="/logoff.do"/>How does the application knows that "logoff.do" is mapped to the logon.jsp page?
    Can anyone answer this question please?
    Thanks in advance,
    Julien.

    Thanks for your reply ADCWorks,
    What I don't understand is that I have disabled the local forward for the logoff action (the struts-config.xml is included here). How does Struts know that the logoff.do is mapped to logon.jsp? I doubt it is hard-coded in the servlet...
    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <!DOCTYPE struts-config PUBLIC
              "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
              "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
    <!--
         This is the Struts configuration file for the example application,
         using the proposed new syntax.
    -->
    <struts-config>
    <!-- ========== Data Source Configuration =============================== -->
    <!--
    <data-sources>
       <data-source>
         <set-property property="autoCommit"
                          value="false"/>
         <set-property property="description"
                          value="Example Data Source Configuration"/>
         <set-property property="driverClass"
                          value="org.postgresql.Driver"/>
         <set-property property="maxCount"
                          value="4"/>
         <set-property property="minCount"
                          value="2"/>
         <set-property property="password"
                          value="mypassword"/>
         <set-property property="url"
                          value="jdbc:postgresql://localhost/mydatabase"/>
         <set-property property="user"
                          value="myusername"/>
       </data-source>
    </data-sources>
    -->
      <!-- ========== Form Bean Definitions =================================== -->
      <form-beans>
        <!-- Logon form bean -->
        <form-bean       name="logonForm"
                         type="org.apache.struts.validator.DynaValidatorForm">
          <form-property name="username" type="java.lang.String"/>
          <form-property name="password" type="java.lang.String"/>
        </form-bean>
        <!-- Registration form bean -->
        <form-bean      name="registrationForm"
                        type="org.apache.struts.webapp.example.RegistrationForm"/>
        <!-- Subscription form bean -->
        <form-bean      name="subscriptionForm"
                        type="org.apache.struts.webapp.example.SubscriptionForm"/>
      </form-beans>
      <!-- ========== Global Forward Definitions ============================== -->
      <global-forwards>
        <forward   name="logoff"               path="/logoff.do"/>
        <forward   name="logon"                path="/logon.jsp"/>
        <forward   name="registration"         path="/registration.jsp"/>
        <forward   name="success"              path="/mainMenu.jsp"/>
      </global-forwards>
      <!-- ========== Action Mapping Definitions ============================== -->
      <action-mappings>
        <!-- Edit user registration -->
        <action    path="/editRegistration"
                   type="org.apache.struts.webapp.example.EditRegistrationAction"
              attribute="registrationForm"
                  scope="request"
               validate="false">
          <forward name="success"              path="/registration.jsp"/>
        </action>
        <!-- Edit mail subscription -->
        <action    path="/editSubscription"
                   type="org.apache.struts.webapp.example.EditSubscriptionAction"
              attribute="subscriptionForm"
                  scope="request"
               validate="false">
          <forward name="failure"              path="/mainMenu.jsp"/>
          <forward name="success"              path="/subscription.jsp"/>
        </action>
        <!-- Process a user logoff -->
        <action    path="/logoff"
                   type="org.apache.struts.webapp.example.LogoffAction">
          <!--forward name="success"              path="/index.jsp"/-->
        </action>
        <!-- Process a user logon -->
        <action    path="/logon"
                   type="org.apache.struts.webapp.example.LogonAction"
                   name="logonForm"
                  scope="session"
                  input="logon">
          <exception
                    key="expired.password"
                   type="org.apache.struts.webapp.example.ExpiredPasswordException"
                   path="/changePassword.jsp"/>
        </action>
        <!-- Save user registration -->
        <action    path="/saveRegistration"
                   type="org.apache.struts.webapp.example.SaveRegistrationAction"
                   name="registrationForm"
                  scope="request"
                  input="registration"/>
        <!-- Save mail subscription -->
        <action    path="/saveSubscription"
                   type="org.apache.struts.webapp.example.SaveSubscriptionAction"
                   name="subscriptionForm"
                  scope="request"
                  input="subscription">
          <forward name="subscription"    path="/subscription.jsp"/>
          <forward name="success"         path="/editRegistration.do?action=Edit"/>
        </action>
        <!-- Display the "walking tour" documentation -->
        <action    path="/tour"
                forward="/tour.htm">
        </action>
      </action-mappings>
      <!-- ========== Controller Configuration ================================ -->
      <controller>
        <!-- The "input" parameter on "action" elements is the name of a
             local or global "forward" rather than a module-relative path -->
        <set-property property="inputForward" value="true"/>
      </controller>
      <!-- ========== Message Resources Definitions =========================== -->
      <message-resources
        parameter="org.apache.struts.webapp.example.ApplicationResources"/>
      <message-resources
        parameter="org.apache.struts.webapp.example.AlternateApplicationResources"
        key="alternate">
      </message-resources>
      <!-- ========== Plug Ins Configuration ================================== -->
      <plug-in className="org.apache.struts.plugins.ModuleConfigVerifier"/>
      <plug-in className="org.apache.struts.webapp.example.memory.MemoryDatabasePlugIn">
        <set-property property="pathname" value="/WEB-INF/database.xml"/>
      </plug-in>
      <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
        <set-property property="pathnames"
                         value="/WEB-INF/validator-rules.xml,
                                /WEB-INF/validation.xml"/>
      </plug-in>
    </struts-config>

  • Help me for a basic Struts tag question.

    I need display a image on my page, but I don't know how to replace
    "?" in <html:img src="?" /> with one of my bean's property.
    My teacher asked us must not use any <%..%> style expressions
    Please help me do it.
    Thanks

    ok - too early - what I mean to say is, scratch the bean:write, I didn't read very clearly, use your html:img but use the property attribute, not the src attribute.
    Sorry for the confusion
    Lee

  • Struts 1.1 Iterate through input types of image

    Hi everyone,
    I'm using struts 1.1, and specifically the logic:iterate tag. Basically I'm looping through a List of Users. I print out username, userAccessLevel, two image input types (edit or remove). My actionForm associated with the JSP contains the List of Users.
    A User object has an AccessButtons field (among other things),
    an AccessButtons object contains two Buttons objects named edit and remove,
    a Button object has 3 String fields, x, y, and name, and a "pressed()" function
    Essentially I want the Action class to be able to pick up what button was pressed on the ActionForm. Specifically both the user and edit/remove action associated with the button. The code I have so far in the JSP is:
    <logic:iterate id="users" name="accessForm" property="users" indexId="index">
    <bean:define id="ssn" name="users" property="ssn"/>
    <bean:define id="accessButtons" name="users" property="accessButtons"/>
    <bean:write name="users" property="fullname"/>
    <bean:write name="users" property="accessLevel"/>
    <html:image property="accessButtons.edit" src="images/edit.gif" border="0" alt="edit" indexed="true"/>
    <html:image property="accessButtons.remove" src="images/remove.gif" border="0" alt="remove" indexed="true"/>
    </logic:iterate>
    This displays the desired output, but it doesn't help be differentiate the user for which the button was pressed. I left out some of the HTML formatting stuff to keep the code clean.
    Anyone have any ideas? I hope I explained what I wanted clearly and concisely...

    yes, this is a problem, isn't it...
    I would suggess make each user iterration include a separate form tag set and have a hidden field with the user id. but I think this will still have a problem of knowing which of the 2 buttons were pressed. There is a problem here, cuz Netscape 7 sends the button name of the button and button.x and button.y, whereas IE 6 only sends the button.x and button.y, and not the button as is... which presents a problem to figuring out what was clicked. (Plain submit type buttons seem to be fine for submitting). At least, I guess just check for the existance of the button_name.x to see which was pressed, but you still need the user ID in the forms.

  • Struts tiles to create event based loading of tiles on a JSP

    Hi All,
    I am working on a web app where I am using struts tiles to create my JSPs. I have tiles for header, footer & nav bar.
    Now I want to break up my JSP body in multiple tiles. It is required that I insert only one body tile initially, say body1, which contains few hyperlinks. Depending on which link is clicked, I would attach another tile (body2) below the first one. Can any advanced tiles user inform me if it's possible with struts-tiles, & if yes how?
    Thanks.

    Tiles is basically used to overload the jsp pages and reuse them.
    In your tiles-defs.xml file:
    //Tiles for header, footer and nav bar goes here
    //Tiles for body1 and body2  goes here
    <definition name="BodyTile" page="/yourPage.jsp">
              <put name="body1" value="/blank.jsp" />
              <put name="body2" value="/blank.jsp" />
    </definition>
    <!--Blank jsp is a simple html page without any data into it-->
    Now create a customized tile for your module. Mapping has to be done in struts-config.xml.
    Notice that the definitions here extend the tile from tiles-defs.xml, i.e. "BodyTile"
    <definition name="ActionOneWithBodyOne" extends="BodyTile">
        <put name="body1" value="/yourPage1.jsp" />
    </definition>
    <definition name="ActionTwoWithBodyTwo" extends="BodyTile">
        <put name="body1" value="/yourPage1.jsp" />
        <put name="body2" value="/yourPage2.jsp" />
    </definition>Now when you first load the page forward it to "ActionOneWithBodyOne" and it displays you just your body1.
    When ever u click a link on body 1, after performing the action populate the form bean corresponding to yourPage2.jsp and forward the action to "ActionTwoWithBodyTwo".
    Hope that helps!!
    SirG

  • Error when using Struts on Tomcat:

    Dear all,
    I am playing around with Struts a bit and after a long day of tweaking and bug-fixing I got stuck with the flollowing error:
    javax.servlet.ServletException: Cannot find bean termBean in any scope
         org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:848)
         org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:781)
         org.apache.jsp.TermView_jsp._jspService(org.apache.jsp.TermView_jsp:155)
         org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
         javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
         org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
         org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
         org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
         javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
         org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1069)
         org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:455)
         org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:279)
         org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
         org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
         javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
         javax.servlet.http.HttpServlet.service(HttpServlet.java:802)The relevant bit from the JSP page is this one (from TermView.jsp):
    <logic:iterate id="tp"
            type="com.myStruts.entity.TermPair" name="termBean" property="list" >
            <tr>
                <td><bean:write name="tp" property="source" />
                <td><bean:write name="tp" property="target" />
                <td><bean:write name="tp" property="status" />
            </tr>
    </logic:iterate>This is the relevant bit fron struts-config:
        <action
          type="ViewTermsAction"
          path="/term">
                <forward name="success" path="/TermView.jsp" />
        </action>The bean is set as a session attribute in this ActionForm here:
    public class ViewTermsAction extends Action {
        private static final String ERR_POPULATE =
                "SQL error: can't populate dataset";
        public ActionForward execute(ActionMapping mapping,
                                     ActionForm form,
                                     HttpServletRequest request,
                                     HttpServletResponse response) throws
                IOException,
                ServletException {
            DataSource dataSource = getDataSource(request);
            TermDb tdb = new TermDb();
            tdb.setDataSource(dataSource);
            try {
                tdb.populate();
            } catch (SQLException sqlx) {
                System.out.println(sqlx);
                getServlet().getServletContext().log(ERR_POPULATE, sqlx);
            request.setAttribute("termBean", tdb);
            return mapping.findForward("success");
    }The application is meant to retrieve a list of term pairs from a DB and iterate over the list, displaying them to the user. Any idea what the problem here could be? Apparently, the JSP won't find the termBean. I created the code modifying stuff from here: http://www.manning.com/books/ford/source. Except that the code samples from that site work, mine doesn't.
    Thanks a lot in advance for any help!
    Best regards,
    N.

    I just tried:
    substr(to_timestamp(svs_date, 'dd-mon-yy'),1,9)which crops it but then the interactive searches dont work again so its basically the same as Date. :(
    Mike

  • Error while running the struts page

    Hi ,
    I am trying to access a jsp page written with struts. I am using tomcat4.0.1.My jsp page is in <webapps/strutsapp1/>directory where strutsapp1 is my web application. When i go to that page like -
    http://localhost:8080/strutsapp1/index.jsp i get the following error
    Apache Tomcat/4.0.1 - HTTP Status 404 - /strutsapp1/index.jsp
    type Status report
    message /strutsapp1/index.jsp
    description The requested resource (/strutsapp1/index.jsp) is not available.
    kindly suggest.
    Regards,
    nikhil

    Hi,
    I restarted the application after putting my webapp.
    The following are the lines from the logs.It looks to me there is
    org.xml.sax.SAXParseException error.?What is the solution to that?
    2002-12-04 13:50:42 WebappLoader[manager]: Deploying class repositories to work directory C:\jakarta-tomcat-4.0.1\work\localhost\manager
    2002-12-04 13:50:42 StandardManager[manager]: Seeding random number generator class java.security.SecureRandom
    2002-12-04 13:50:42 StandardManager[manager]: Seeding of random number generator has been completed
    2002-12-04 13:50:42 ContextConfig[manager]: Configured an authenticator for method BASIC
    2002-12-04 13:50:42 StandardWrapper[manager:default]: Loading container servlet default
    2002-12-04 13:50:42 default: init
    2002-12-04 13:50:42 StandardWrapper[manager:invoker]: Loading container servlet invoker
    2002-12-04 13:50:42 invoker: init
    2002-12-04 13:50:42 jsp: init
    2002-12-04 13:50:42 StandardHost[localhost]: Installing web application at context path /cabo from URL file:C:\jakarta-tomcat-4.0.1\webapps\cabo
    2002-12-04 13:50:42 WebappLoader[cabo]: Deploying class repositories to work directory C:\jakarta-tomcat-4.0.1\work\localhost\cabo
    2002-12-04 13:50:42 StandardManager[cabo]: Seeding random number generator class java.security.SecureRandom
    2002-12-04 13:50:42 StandardManager[cabo]: Seeding of random number generator has been completed
    2002-12-04 13:50:42 StandardWrapper[cabo:default]: Loading container servlet default
    2002-12-04 13:50:42 default: init
    2002-12-04 13:50:42 StandardWrapper[cabo:invoker]: Loading container servlet invoker
    2002-12-04 13:50:42 invoker: init
    2002-12-04 13:50:42 jsp: init
    2002-12-04 13:50:43 StandardHost[localhost]: Installing web application at context path from URL file:C:\jakarta-tomcat-4.0.1\webapps\ROOT
    2002-12-04 13:50:43 WebappLoader[]: Deploying class repositories to work directory C:\jakarta-tomcat-4.0.1\work\localhost\_
    2002-12-04 13:50:43 StandardManager[]: Seeding random number generator class java.security.SecureRandom
    2002-12-04 13:50:43 StandardManager[]: Seeding of random number generator has been completed
    2002-12-04 13:50:43 StandardWrapper[:default]: Loading container servlet default
    2002-12-04 13:50:43 default: init
    2002-12-04 13:50:43 StandardWrapper[:invoker]: Loading container servlet invoker
    2002-12-04 13:50:43 invoker: init
    2002-12-04 13:50:43 jsp: init
    2002-12-04 13:50:43 StandardHost[localhost]: Installing web application at context path /struts-documentation from URL file:C:\jakarta-tomcat-4.0.1\webapps\struts-documentation
    2002-12-04 13:50:43 WebappLoader[struts-documentation]: Deploying class repositories to work directory C:\jakarta-tomcat-4.0.1\work\localhost\struts-documentation
    2002-12-04 13:50:43 WebappLoader[struts-documentation]: Deploy JAR /WEB-INF/lib/commons-beanutils.jar to C:\jakarta-tomcat-4.0.1\webapps\struts-documentation\WEB-INF\lib\commons-beanutils.jar
    2002-12-04 13:50:43 WebappLoader[struts-documentation]: Deploy JAR /WEB-INF/lib/commons-collections.jar to C:\jakarta-tomcat-4.0.1\webapps\struts-documentation\WEB-INF\lib\commons-collections.jar
    2002-12-04 13:50:43 WebappLoader[struts-documentation]: Deploy JAR /WEB-INF/lib/commons-dbcp.jar to C:\jakarta-tomcat-4.0.1\webapps\struts-documentation\WEB-INF\lib\commons-dbcp.jar
    2002-12-04 13:50:43 WebappLoader[struts-documentation]: Deploy JAR /WEB-INF/lib/commons-digester.jar to C:\jakarta-tomcat-4.0.1\webapps\struts-documentation\WEB-INF\lib\commons-digester.jar
    2002-12-04 13:50:43 WebappLoader[struts-documentation]: Deploy JAR /WEB-INF/lib/commons-fileupload.jar to C:\jakarta-tomcat-4.0.1\webapps\struts-documentation\WEB-INF\lib\commons-fileupload.jar
    2002-12-04 13:50:43 WebappLoader[struts-documentation]: Deploy JAR /WEB-INF/lib/commons-lang.jar to C:\jakarta-tomcat-4.0.1\webapps\struts-documentation\WEB-INF\lib\commons-lang.jar
    2002-12-04 13:50:43 WebappLoader[struts-documentation]: Deploy JAR /WEB-INF/lib/commons-logging.jar to C:\jakarta-tomcat-4.0.1\webapps\struts-documentation\WEB-INF\lib\commons-logging.jar
    2002-12-04 13:50:43 WebappLoader[struts-documentation]: Deploy JAR /WEB-INF/lib/commons-pool.jar to C:\jakarta-tomcat-4.0.1\webapps\struts-documentation\WEB-INF\lib\commons-pool.jar
    2002-12-04 13:50:43 WebappLoader[struts-documentation]: Deploy JAR /WEB-INF/lib/commons-resources.jar to C:\jakarta-tomcat-4.0.1\webapps\struts-documentation\WEB-INF\lib\commons-resources.jar
    2002-12-04 13:50:43 WebappLoader[struts-documentation]: Deploy JAR /WEB-INF/lib/commons-services.jar to C:\jakarta-tomcat-4.0.1\webapps\struts-documentation\WEB-INF\lib\commons-services.jar
    2002-12-04 13:50:43 WebappLoader[struts-documentation]: Deploy JAR /WEB-INF/lib/commons-validator.jar to C:\jakarta-tomcat-4.0.1\webapps\struts-documentation\WEB-INF\lib\commons-validator.jar
    2002-12-04 13:50:43 WebappLoader[struts-documentation]: Deploy JAR /WEB-INF/lib/jakarta-oro.jar to C:\jakarta-tomcat-4.0.1\webapps\struts-documentation\WEB-INF\lib\jakarta-oro.jar
    2002-12-04 13:50:43 WebappLoader[struts-documentation]: Deploy JAR /WEB-INF/lib/struts.jar to C:\jakarta-tomcat-4.0.1\webapps\struts-documentation\WEB-INF\lib\struts.jar
    2002-12-04 13:50:43 StandardManager[struts-documentation]: Seeding random number generator class java.security.SecureRandom
    2002-12-04 13:50:43 StandardManager[struts-documentation]: Seeding of random number generator has been completed
    2002-12-04 13:50:43 StandardWrapper[struts-documentation:default]: Loading container servlet default
    2002-12-04 13:50:43 default: init
    2002-12-04 13:50:43 StandardWrapper[struts-documentation:invoker]: Loading container servlet invoker
    2002-12-04 13:50:43 invoker: init
    2002-12-04 13:50:44 jsp: init
    2002-12-04 13:50:44 StandardHost[localhost]: Installing web application at context path /strutsapp1 from URL file:C:\jakarta-tomcat-4.0.1\webapps\strutsapp1
    2002-12-04 13:50:44 WebappLoader[strutsapp1]: Deploying class repositories to work directory C:\jakarta-tomcat-4.0.1\work\localhost\strutsapp1
    2002-12-04 13:50:44 WebappLoader[strutsapp1]: Deploy JAR /WEB-INF/lib/commons-beanutils.jar to C:\jakarta-tomcat-4.0.1\webapps\strutsapp1\WEB-INF\lib\commons-beanutils.jar
    2002-12-04 13:50:44 WebappLoader[strutsapp1]: Deploy JAR /WEB-INF/lib/commons-collections.jar to C:\jakarta-tomcat-4.0.1\webapps\strutsapp1\WEB-INF\lib\commons-collections.jar
    2002-12-04 13:50:44 WebappLoader[strutsapp1]: Deploy JAR /WEB-INF/lib/commons-dbcp.jar to C:\jakarta-tomcat-4.0.1\webapps\strutsapp1\WEB-INF\lib\commons-dbcp.jar
    2002-12-04 13:50:44 WebappLoader[strutsapp1]: Deploy JAR /WEB-INF/lib/commons-digester.jar to C:\jakarta-tomcat-4.0.1\webapps\strutsapp1\WEB-INF\lib\commons-digester.jar
    2002-12-04 13:50:44 WebappLoader[strutsapp1]: Deploy JAR /WEB-INF/lib/commons-logging.jar to C:\jakarta-tomcat-4.0.1\webapps\strutsapp1\WEB-INF\lib\commons-logging.jar
    2002-12-04 13:50:44 WebappLoader[strutsapp1]: Deploy JAR /WEB-INF/lib/commons-pool.jar to C:\jakarta-tomcat-4.0.1\webapps\strutsapp1\WEB-INF\lib\commons-pool.jar
    2002-12-04 13:50:44 WebappLoader[strutsapp1]: Deploy JAR /WEB-INF/lib/commons-services.jar to C:\jakarta-tomcat-4.0.1\webapps\strutsapp1\WEB-INF\lib\commons-services.jar
    2002-12-04 13:50:44 WebappLoader[strutsapp1]: Deploy JAR /WEB-INF/lib/commons-validator.jar to C:\jakarta-tomcat-4.0.1\webapps\strutsapp1\WEB-INF\lib\commons-validator.jar
    2002-12-04 13:50:44 WebappLoader[strutsapp1]: Deploy JAR /WEB-INF/lib/struts.jar to C:\jakarta-tomcat-4.0.1\webapps\strutsapp1\WEB-INF\lib\struts.jar
    2002-12-04 13:50:44 WebappLoader[strutsapp1]: Deploy JAR /WEB-INF/lib/xerces.jar to C:\jakarta-tomcat-4.0.1\webapps\strutsapp1\WEB-INF\lib\xerces.jar
    2002-12-04 13:50:44 StandardManager[strutsapp1]: Seeding random number generator class java.security.SecureRandom
    2002-12-04 13:50:44 StandardManager[strutsapp1]: Seeding of random number generator has been completed
    2002-12-04 13:50:44 ContextConfig[strutsapp1] Parse error in application web.xml
    org.xml.sax.SAXParseException: The content of element type "web-app" must match "(icon?,display-name?,description?,distributable?,context-param*,filter*,filter-mapping*,listener*,servlet*,servlet-mapping*,session-config?,mime-mapping*,welcome-file-list?,error-page*,taglib*,resource-env-ref*,resource-ref*,security-constraint*,login-config?,security-role*,env-entry*,ejb-ref*,ejb-local-ref*)".
         at org.apache.xerces.framework.XMLParser.reportError(XMLParser.java:1196)
         at org.apache.xerces.validators.common.XMLValidator.callEndElement(XMLValidator.java, Compiled Code)
         at org.apache.xerces.framework.XMLDocumentScanner$ContentDispatcher.dispatch(XMLDocumentScanner.java, Compiled Code)
         at org.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentScanner.java, Compiled Code)
         at org.apache.xerces.framework.XMLParser.parse(XMLParser.java, Compiled Code)
         at org.xml.sax.helpers.XMLReaderAdapter.parse(XMLReaderAdapter.java:223)
         at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
         at javax.xml.parsers.SAXParser.parse(SAXParser.java:143)
         at org.apache.catalina.util.xml.XmlMapper.readXml(XmlMapper.java:275)
         at org.apache.catalina.startup.ContextConfig.applicationConfig(ContextConfig.java:256)
         at org.apache.catalina.startup.ContextConfig.start(ContextConfig.java, Compiled Code)
         at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:224)
         at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java, Compiled Code)
         at org.apache.catalina.core.ContainerBase.start(ContainerBase.java, Compiled Code)
         at org.apache.catalina.core.StandardContext.start(StandardContext.java:3334)
         at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java, Compiled Code)
         at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:454)
         at org.apache.catalina.core.StandardHost.install(StandardHost.java:712)
         at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java, Compiled Code)
         at org.apache.catalina.startup.HostConfig.start(HostConfig.java:777)
         at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:463)
         at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java, Compiled Code)
         at org.apache.catalina.core.ContainerBase.start(ContainerBase.java, Compiled Code)
         at org.apache.catalina.core.StandardHost.start(StandardHost.java:612)
         at org.apache.catalina.core.ContainerBase.start(ContainerBase.java, Compiled Code)
         at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:307)
         at org.apache.catalina.core.StandardService.start(StandardService.java, Compiled Code)
         at org.apache.catalina.core.StandardServer.start(StandardServer.java, Compiled Code)
         at org.apache.catalina.startup.Catalina.start(Catalina.java:776)
         at org.apache.catalina.startup.Catalina.execute(Catalina.java:681)
         at org.apache.catalina.startup.Catalina.process(Catalina.java:179)
         at java.lang.reflect.Method.invoke(Native Method)
         at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java, Compiled Code)
    2002-12-04 13:50:44 ContextConfig[strutsapp1]: Occurred at line 28 column 11
    2002-12-04 13:50:44 ContextConfig[strutsapp1]: Marking this application unavailable due to previous error(s)
    2002-12-04 13:50:44 StandardContext[strutsapp1]: Error initializing naming context for context /strutsapp1
    2002-12-04 13:50:44 StandardContext[strutsapp1]: Context startup failed due to previous errors
    2002-12-04 13:50:44 StandardContext[strutsapp1]: Error initializing naming context for context /strutsapp1
    2002-12-04 13:50:44 StandardHost[localhost]: Installing web application at context path /tomcat-docs from URL file:C:\jakarta-tomcat-4.0.1\webapps\tomcat-docs
    2002-12-04 13:50:44 WebappLoader[tomcat-docs]: Deploying class repositories to work directory C:\jakarta-tomcat-4.0.1\work\localhost\tomcat-docs
    2002-12-04 13:50:44 StandardManager[tomcat-docs]: Seeding random number generator class java.security.SecureRandom
    2002-12-04 13:50:44 StandardManager[tomcat-docs]: Seeding of random number generator has been completed
    2002-12-04 13:50:44 StandardWrapper[tomcat-docs:default]: Loading container servlet default
    2002-12-04 13:50:44 default: init
    2002-12-04 13:50:44 StandardWrapper[tomcat-docs:invoker]: Loading container servlet invoker
    2002-12-04 13:50:44 invoker: init
    2002-12-04 13:50:44 jsp: init
    2002-12-04 13:50:44 StandardHost[localhost]: Installing web application at context path /tomcatreport from URL file:C:\jakarta-tomcat-4.0.1\webapps\tomcatreport
    2002-12-04 13:50:44 WebappLoader[tomcatreport]: Deploying class repositories to work directory C:\jakarta-tomcat-4.0.1\work\localhost\tomcatreport
    2002-12-04 13:50:44 WebappLoader[tomcatreport]: Deploy JAR /WEB-INF/lib/classes111.jar to C:\jakarta-tomcat-4.0.1\webapps\tomcatreport\WEB-INF\lib\classes111.jar
    2002-12-04 13:50:44 WebappLoader[tomcatreport]: Deploy JAR /WEB-INF/lib/classes12.jar to C:\jakarta-tomcat-4.0.1\webapps\tomcatreport\WEB-INF\lib\classes12.jar
    2002-12-04 13:50:45 StandardManager[tomcatreport]: Seeding random number generator class java.security.SecureRandom
    2002-12-04 13:50:45 StandardManager[tomcatreport]: Seeding of random number generator has been completed
    2002-12-04 13:50:45 ContextConfig[tomcatreport]: Missing application web.xml, using defaults only
    2002-12-04 13:50:45 StandardWrapper[tomcatreport:default]: Loading container servlet default
    2002-12-04 13:50:45 default: init
    2002-12-04 13:50:45 StandardWrapper[tomcatreport:invoker]: Loading container servlet invoker
    2002-12-04 13:50:45 invoker: init
    2002-12-04 13:50:45 jsp: init
    2002-12-04 13:50:45 Internal Error: File /WEB-INF/web.xml not found
    Regards,
    nikhil

  • EJB 3.0 and Struts 1.0

    Have a Struts/EJB question...
    If I have a web-form backed by an ActionForm in Struts, where the user
    types in a record that maps directly to an EJB3 entity class and a
    corresponding db-table, is it advisable (or even possible) to somehow
    use the same class for the ActionForm and the EJB?
    Im thinking the 2 beans, they have basically the same setter/getter
    methods,
    but the form-bean extends ActionForm, while the Entity class
    implements serializable...
    Is it possible to use one and the same class for both purposes... or
    maybe one extends the other...
    Or should they just be two different classes, and have to copy data
    back and forth between them?
    What is "best practice" here?
    Edited by: vb.bajpai on Feb 13, 2009 4:13 AM

    Well, the "best practice" is the one that better fits for you. Your idea of making another bean for struts, has been thought before. That technique is called "DTO Pattern". Search the java blueprints for the DTO Pattern.
    So you have 2 options
    Use EJB entities through all your app
    pros: less code to write
    cons: highly coupled code. struts must stick to your EJB entity beans.
    Use the DTO pattern
    pros: loose coupled design. you can change your entities and your struts forms wont be affected.
    cons: more code to write. You may need help from a bean to bean mapper like dozer or ezconvert
    PS: DTO (Data Transfer Object), VO (Value Object), and TO (Transfer Object) are all synonyms.

  • Issue in converting Struts view to JSF view using struts-faces integration

    Hi All,
    I am facing a issue in my Sruts to JSF conversion application using struts-faces.jar integration library.
    Need expert's help desperately as I am not able to use <s:form> tag in my new jsf page to call a struts action.
    I want to call a struts action from my web page designed using JSF,
    but it seems impossible without using <s:form> tag from struts-faces integration library.
    Please suggest how to resolve this...
    I am using WSAD 5.1 IDE with inbuilt Test environment WebSphere server
    JSF Version: Sun's RI 1.1
    Struts framework: 1.2.6
    Struts-Faces Integration Library version: 1.0
    I have configured a controller element in struts-config.xml file as has been suggested by different online
    documents I studied:
    <controller>
    <set-property property="processorClass"
    value="org.apache.struts.faces.application.FacesRequestProcessor"/>
    </controller>
    But configuring a controller does not allow my test server to start up properly and due to errors the ActionServlet also becomes unavailable.
    If I comment the controller and start the test server it starts fine but then I cannot access the converted jsf page which contains the <s:form action="/xxxxx.do"> tag.
    If now I get back to <h:form> tag instead of <s:form> tag with a <h:commandButton action="xxxx.do"/> for form submission in my jsf page, I see the html page generated with all components but now checking the html source generated I see
    <form action="/contextName/jspFolder/sameDisplayedPage.jsf"> which is not valid and never gets called successfully.
    I think someways I need to use the <s:form> tag with the controller configured properly to use the struts-faces integration library's request processor, to get things working. But HOW???
    Following is the error I get if I use the <controller> tag element in struts-config.xml file and start the server.
    This error appears on starting the server without accessing any application's jsp web page
    [6/12/06 15:31:14:109 IST] 3e311815 ActionServlet E org.apache.struts.action.ActionServlet Unable to initialize Struts ActionServlet due to an unexpected exception or error thrown, so marking the servlet as unavailable. Most likely, this is due to an incorrect or missing library dependency.
    [6/12/06 15:31:14:109 IST] 3e311815 ActionServlet E org.apache.struts.action.ActionServlet TRAS0014I: The following exception was logged java.lang.IllegalAccessError: org.apache.commons.digester.SetPropertyRule tried to access method org/apache/commons/beanutils/BeanUtils.setProperty(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)V
    at org.apache.commons.digester.SetPropertyRule.begin(SetPropertyRule.java:198)
    at org.apache.commons.digester.Rule.begin(Rule.java:200)
    at org.apache.commons.digester.Digester.startElement(Digester.java:1273)
    at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)
    at org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(Unknown Source)
    at org.apache.xerces.impl.dtd.XMLDTDValidator.emptyElement(Unknown Source)
    at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
    at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
    at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
    at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
    at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
    at org.apache.commons.digester.Digester.parse(Digester.java:1548)
    at org.apache.struts.action.ActionServlet.parseModuleConfigFile(ActionServlet.java:736)
    at org.apache.struts.action.ActionServlet.initModuleConfig(ActionServlet.java:685)
    at org.apache.struts.action.ActionServlet.init(ActionServlet.java:331)
    at javax.servlet.GenericServlet.init(GenericServlet.java:258)
    at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doInit(StrictServletInstance.java:82)
    at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._init(StrictLifecycleServlet.java:147)
    at com.ibm.ws.webcontainer.servlet.PreInitializedServletState.init(StrictLifecycleServlet.java:270)
    at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.init(StrictLifecycleServlet.java:113)
    at com.ibm.ws.webcontainer.servlet.ServletInstance.init(ServletInstance.java:189)
    at javax.servlet.GenericServlet.init(GenericServlet.java:258)
    at com.ibm.ws.webcontainer.webapp.WebAppServletManager.addServlet(WebAppServletManager.java:870)
    at com.ibm.ws.webcontainer.webapp.WebAppServletManager.loadServlet(WebAppServletManager.java:224)
    at com.ibm.ws.webcontainer.webapp.WebAppServletManager.loadAutoLoadServlets(WebAppServletManager.java:542)
    at com.ibm.ws.webcontainer.webapp.WebApp.loadServletManager(WebApp.java:1277)
    at com.ibm.ws.webcontainer.webapp.WebApp.init(WebApp.java:283)
    at com.ibm.ws.webcontainer.srt.WebGroup.loadWebApp(WebGroup.java:387)
    at com.ibm.ws.webcontainer.srt.WebGroup.init(WebGroup.java:209)
    at com.ibm.ws.webcontainer.WebContainer.addWebApplication(WebContainer.java:987)
    at com.ibm.ws.runtime.component.WebContainerImpl.install(WebContainerImpl.java:136)
    at com.ibm.ws.runtime.component.WebContainerImpl.start(WebContainerImpl.java:356)
    at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:418)
    at com.ibm.ws.runtime.component.DeployedApplicationImpl.fireDeployedObjectStart(DeployedApplicationImpl.java:787)
    at com.ibm.ws.runtime.component.DeployedModuleImpl.start(DeployedModuleImpl.java:354)
    at com.ibm.ws.runtime.component.DeployedApplicationImpl.start(DeployedApplicationImpl.java:575)
    at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:271)
    at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:249)
    at com.ibm.ws.runtime.component.ContainerImpl.startComponents(ContainerImpl.java:536)
    at com.ibm.ws.runtime.component.ContainerImpl.start(ContainerImpl.java:413)
    at com.ibm.ws.runtime.component.ApplicationServerImpl.start(ApplicationServerImpl.java:125)
    at com.ibm.ws.runtime.component.ContainerImpl.startComponents(ContainerImpl.java:536)
    at com.ibm.ws.runtime.component.ContainerImpl.start(ContainerImpl.java:413)
    at com.ibm.ws.runtime.component.ServerImpl.start(ServerImpl.java:183)
    at com.ibm.ws.runtime.WsServer.start(WsServer.java:128)
    at com.ibm.ws.runtime.WsServer.main(WsServer.java:225)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:41)
    at java.lang.reflect.Method.invoke(Method.java:386)
    at com.ibm.ws.bootstrap.WSLauncher.main(WSLauncher.java:94)
    at com.ibm.etools.websphere.tools.runner.api.ServerRunnerV5$1.run(ServerRunnerV5.java:97)
    [6/12/06 15:31:14:188 IST] 3e311815 WebGroup E SRVE0020E: [Servlet Error]-[ActionServlet]: Failed to load servlet: javax.servlet.UnavailableException: org.apache.commons.digester.SetPropertyRule tried to access method org/apache/commons/beanutils/BeanUtils.setProperty(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)V
    at org.apache.struts.action.ActionServlet.init(ActionServlet.java:366)
    at javax.servlet.GenericServlet.init(GenericServlet.java:258)
    at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doInit(StrictServletInstance.java:82)
    at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._init(StrictLifecycleServlet.java:147)
    at com.ibm.ws.webcontainer.servlet.PreInitializedServletState.init(StrictLifecycleServlet.java:270)
    at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.init(StrictLifecycleServlet.java:113)
    at com.ibm.ws.webcontainer.servlet.ServletInstance.init(ServletInstance.java:189)
    at javax.servlet.GenericServlet.init(GenericServlet.java:258)
    at com.ibm.ws.webcontainer.webapp.WebAppServletManager.addServlet(WebAppServletManager.java:870)
    at com.ibm.ws.webcontainer.webapp.WebAppServletManager.loadServlet(WebAppServletManager.java:224)
    at com.ibm.ws.webcontainer.webapp.WebAppServletManager.loadAutoLoadServlets(WebAppServletManager.java:542)
    at com.ibm.ws.webcontainer.webapp.WebApp.loadServletManager(WebApp.java:1277)
    at com.ibm.ws.webcontainer.webapp.WebApp.init(WebApp.java:283)
    at com.ibm.ws.webcontainer.srt.WebGroup.loadWebApp(WebGroup.java:387)
    at com.ibm.ws.webcontainer.srt.WebGroup.init(WebGroup.java:209)
    at com.ibm.ws.webcontainer.WebContainer.addWebApplication(WebContainer.java:987)
    at com.ibm.ws.runtime.component.WebContainerImpl.install(WebContainerImpl.java:136)
    at com.ibm.ws.runtime.component.WebContainerImpl.start(WebContainerImpl.java:356)
    at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:418)
    at com.ibm.ws.runtime.component.DeployedApplicationImpl.fireDeployedObjectStart(DeployedApplicationImpl.java:787)
    at com.ibm.ws.runtime.component.DeployedModuleImpl.start(DeployedModuleImpl.java:354)
    at com.ibm.ws.runtime.component.DeployedApplicationImpl.start(DeployedApplicationImpl.java:575)
    at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:271)
    at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:249)
    at com.ibm.ws.runtime.component.ContainerImpl.startComponents(ContainerImpl.java:536)
    at com.ibm.ws.runtime.component.ContainerImpl.start(ContainerImpl.java:413)
    at com.ibm.ws.runtime.component.ApplicationServerImpl.start(ApplicationServerImpl.java:125)
    at com.ibm.ws.runtime.component.ContainerImpl.startComponents(ContainerImpl.java:536)
    at com.ibm.ws.runtime.component.ContainerImpl.start(ContainerImpl.java:413)
    at com.ibm.ws.runtime.component.ServerImpl.start(ServerImpl.java:183)
    at com.ibm.ws.runtime.WsServer.start(WsServer.java:128)
    at com.ibm.ws.runtime.WsServer.main(WsServer.java:225)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:41)
    at java.lang.reflect.Method.invoke(Method.java:386)
    at com.ibm.ws.bootstrap.WSLauncher.main(WSLauncher.java:94)
    at com.ibm.etools.websphere.tools.runner.api.ServerRunnerV5$1.run(ServerRunnerV5.java:97)
    (same error message re-iterates/repeats itself... and finally -
    Error 503: Failed to load target servlet [ActionServlet] comes in web-browser
    Following is the error which I get if I comment the <controller> element in the struts-config.xml file
    and use a <s:form action="xxxxx.do"> in the struts converted jsf page. The web-server starts fine, but
    accessing the jsf page givers error as:
    [6/12/06 15:38:00:781 IST] 696f19de WebGroup I SRVE0180I: [Sample Struts-JSF integration application] [training2] [Servlet.LOG]: /jsp/welcomeF.jsp: init
    [6/12/06 15:38:01:219 IST] 696f19de WebGroup E SRVE0026E: [Servlet Error]-[]: java.lang.NullPointerException
    at org.apache.struts.faces.renderer.FormRenderer.encodeBegin(FormRenderer.java:114)
    at javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:683)
    at javax.faces.webapp.UIComponentTag.encodeBegin(UIComponentTag.java:591)
    at javax.faces.webapp.UIComponentTag.doStartTag(UIComponentTag.java:478)
    at org.apache.jsp._welcomeF._jspService(_welcomeF.java:207)
    at com.ibm.ws.webcontainer.jsp.runtime.HttpJspBase.service(HttpJspBase.java:89)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at com.ibm.ws.webcontainer.jsp.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:344)
    at com.ibm.ws.webcontainer.jsp.servlet.JspServlet.serviceJspFile(JspServlet.java:662)
    at com.ibm.ws.webcontainer.jsp.servlet.JspServlet.service(JspServlet.java:760)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110)
    at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174)
    at com.ibm.ws.webcontainer.servlet.IdleServletState.service(StrictLifecycleServlet.java:313)
    at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116)
    at com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:283)
    at com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42)
    at com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40)
    at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:974)
    at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:555)
    at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:200)
    at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:322)
    at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:130)
    at org.apache.struts.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:130)
    at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:87)
    at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)
    at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:117)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:198)
    at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110)
    at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174)
    at com.ibm.ws.webcontainer.servlet.IdleServletState.service(StrictLifecycleServlet.java:313)
    at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116)
    at com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:283)
    at com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42)
    at com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40)
    at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:974)
    at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:555)
    at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:200)
    at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1054)
    at org.apache.struts.action.RequestProcessor.internalModuleRelativeForward(RequestProcessor.java:992)
    at org.apache.struts.action.RequestProcessor.processForward(RequestProcessor.java:551)
    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:209)
    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1192)
    at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:412)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110)
    at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174)
    at com.ibm.ws.webcontainer.servlet.IdleServletState.service(StrictLifecycleServlet.java:313)
    at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116)
    at com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:283)
    at com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42)
    at com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40)
    at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:974)
    at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:555)
    at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:200)
    at com.ibm.ws.webcontainer.srt.WebAppInvoker.doForward(WebAppInvoker.java:119)
    at com.ibm.ws.webcontainer.srt.WebAppInvoker.handleInvocationHook(WebAppInvoker.java:276)
    at com.ibm.ws.webcontainer.cache.invocation.CachedInvocation.handleInvocation(CachedInvocation.java:71)
    at com.ibm.ws.webcontainer.srp.ServletRequestProcessor.dispatchByURI(ServletRequestProcessor.java:182)
    at com.ibm.ws.webcontainer.oselistener.OSEListenerDispatcher.service(OSEListener.java:334)
    at com.ibm.ws.webcontainer.http.HttpConnection.handleRequest(HttpConnection.java:56)
    at com.ibm.ws.http.HttpConnection.readAndHandleRequest(HttpConnection.java:618)
    at com.ibm.ws.http.HttpConnection.run(HttpConnection.java:439)
    at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:593)
    Finally if I change my <s:form action="xxxxx.do"> tag to
    <h:form>
    <h:commandButton id="submit" action="xxxx.do" value="Submit" />
    I see the webpage coming up in the browser (no controller element used in struts-config.xml file this time)
    But in the html source of this html created from jsf I see
    <form id="_id2" method="post" action="/training2/jsp/welcomeF.faces" enctype="application/x-www-form-urlencoded">
    here form's action attribute is pointing to the same displayed page with the context name prefixed. I
    assume it is because jsf could not resolve the "xxxx.do" action to anything so set it to the same displayed page.
    May be I am wrong as usual...
    Below is the simple struts jsp page which I need to convert to jsf page as I am converting only the View part of application.
    I want to use the same struts beans and application logic at the back-end. At front-end I need UIComponents from JSF to be used.
    Following is the struts jsp page
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1" %>
    <%@ taglib prefix="html" uri="/WEB-INF/lib/struts-html.tld" %>
    <%@ taglib prefix="bean" uri="/WEB-INF/lib/struts-bean.tld" %>
    <html:html>
    <html:base/>
    <html:messages id="messages" />
    <font style="color:red; font=weight:italic; font-family: century gothic">
    <html:errors/>
    </font>
    <BODY>
    <P>Sample Struts and JSF integration example</P>
    <P>This one is being displayed via Struts specific tags</P>
    <html:form action="validateUser.do">
    <bean:message key="label.name" /> : <html:text property="name" />
    <bean:message key="label.password" /> : <html:password property="password" />
    <bean:message key="label.age" /> : <html:text property="age" />
    <bean:message key="label.city" /> : <html:text property="city" />
    <bean:message key="label.address" /> : <html:text property="address" />
    <html:submit property="submit" value="Show info via Struts" />
    </html:form>
    </BODY>
    </html:html>
    I have converted it into the following jsf page
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1" %>
    <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
    <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
    <%@ taglib uri="http://struts.apache.org/tags-faces" prefix="s" %>
    <f:view>
    <HTML><BODY>
    <f:verbatim><P>Sample Struts and JSF integration example</P></f:verbatim>
    <f:verbatim><P>This one is being displayed via JSF tags</P></f:verbatim>
    <h:form> <!-- Want to use s:form tag instead of this h:form tag -->
    <h:inputText id="name" value="#{userForm.name}" /><f:verbatim>
    </f:verbatim>
    <h:inputSecret id="password" value="#{userForm.password}" /><f:verbatim>
    </f:verbatim>
    <h:inputText id="age" value="#{userForm.age}" /><f:verbatim>
    </f:verbatim>
    <h:inputText id="city" value="#{userForm.city}" /><f:verbatim>
    </f:verbatim>
    <h:inputText id="address" value="#{userForm.address}" /><f:verbatim>
    </f:verbatim>
    <h:commandButton id="submit" action="#{user.facesAction}" value="Show info via Struts" />
    </h:form>
    </BODY></HTML>
    </f:view>
    I am very hopeful of some answer from respected group experts, please help me.
    I am in urgency of course but would not push for immed. response like other, just want some help for sure that is going to
    be extremely valuable to me. Anticipating a helping hand...
    Thanks and Regards
    Vishal Sharm
    Time's fun when you're having flies � Kermit, the Frog
    -------------------------------------------------------------------------

    I've managed to get this working Ok from JDeveloper:
    See:
    http://www.groundside.com/blog/content/DuncanMills/J2EE+Development/?permalink=573FDB6F8D918B9704907899635CABB1.txt
    http://www.groundside.com/blog/content/DuncanMills/J2EE+Development/?permalink=2B04ACE99A6437EDED775F15553D1DED.txt
    Basically you just have to fiddle around with Library settings to get this working OK.
    As to how useful this is, well that's up to you - I'd not regard Faces + Struts as a must use combination, rather it's a can mix if you really need to. Look at Faces and Faces navigation first and see if that actually gives you enough before you start to look at mixing.

  • OC4J 9.0.3 and Struts 1.1b1

    OC4J 9.0.3 is compatible with Struts 1.0.2 but has some problem with Struts 1.1b1 tag libraries, see the following error (struts-example):
    OracleJSP: oracle.jsp.parse.JspParseException: N. riga 2, <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
    Errore: duplicated tag definitions within the same TLD: password
    OC4J 9.0.2 works fine with both Struts releases.
    Any hint?

    There was a bug in struts 1.1b1 where struts-html.tld had a duplication of
    the <password> tag. The bug is 8304 (also 8152), in the apache bug database.
    To fix it, basically, you need to get rid of the extra definitions in struts-html.tld.
    Note that this .tld is in 2 places in strut-example.war, 1) under WEB-INF and
    2) in the struts.jar in WEB-INF/lib/struts.jar.
    So, extract, edit and update the jars:
    1) jar xvf struts-example.war WEB-INF/struts-html.tld
    edit WEB-INF/struts-html.tld (remove whole second password tag)
    jar uvf struts-example.war WEB-INF/struts-html.tld
    2) jar xvf struts-example.war WEB-INF/lib/struts.jar
    cd WEB-INF/lib
    jar xvf struts.jar META-INF/tld/struts-html.jar
    edit as above
    jar uvf struts.jar META-INF/tld/struts-html.jar
    cd ../..
    jar uvf struts-example.war WEB-INF/lib/struts.jar
    3) Finally redeploy struts-example.war

  • Struts alternative to...

    Hello folks,
    During my free time I'm in the process of re-writing a web app I coded in the near past.
    It's an online magazine builder, basically, this tool uses a database to store the articles being edited before they are ready for production. Once the whole bunch of articles are ready for the public, a kind of routine DB 2 XML is called and generates a XML version of this current magazine issue, then another routine is called(kind of XML 2 HTML, using SAX) and generates the whole .jsp version(paged version, printer friendly version and table of contents with all related links between them) of the entire magazine issue. Then another routine is called in order to transform the XML <article> element in pdf version using jakarta fop.
    Now, I decided to produce static .jsp version of the articles to release the DB Server from serve static contents since once the articles are done, it is very unprobable that they will change, anyway if the articles changes, they could be generated again to any version. But it will be uncommon from fix articles every week, so this way the response time would be a lot lesser than read the articles from DB.
    While using struts I have found a limitation in order to achieve this goal, and it is related to the following policy:
    1) Not all articles are public for all users
    These means that I'm using struts action mapping roles to tell the my custom struts processor to avoid unauthorized user from read article "x".
    The point is that I can use the same approach I used in the old version: process the "policy" in jsp file, but this is not a MVC approach, this is not a struts approach.
    BUT what alternative or solution does Struts can give?
    I mean, since a lot of jsp files are created, they are in a "hidden" directory, they can only be accessed through Struts actions, but since the files are new, how can I set up the struts's configuration "structure" at runtime and without restarting the server?
    It would be pretty nice that newly created .jsp could be associated to an action mapping and an action class.
    Any suggestion?
    Regards,
    OO

    did u consider using struts tiles?
    http://struts.apache.org/userGuide/dev_tiles.html

  • Call struts action from javascript?

    Hi all
    I'm having problem already discussed here quite a lot, but I have idea to solve it different way. And need to know is it possible or I'm doing mission impossible here :(
    I have JSP with 2 drop down lilsts, where the second is populated according to selected value from first - that's basically my problem.
    Is it possible to somehow only call my struts action which will return all needed values using javascript and onchange event handler?
    I dont have any experience with javascript, and I'm trying to avoid it as much as possible at the moment.
    Thanks in advance

    well as far your requirement is concern if at all you are planning to implement AJAX try to use the below link which might be of some help...
    http://www.it-eye.nl/weblog/2005/12/13/ajax-in-struts-implementing-dependend-select-boxes/
    However,I somehow feel there are few loopholes in the author's approach...
    i advice to use XmlHttpRequest.reponseXML property there.
    However, i've mentioned a sample code snippet for you reference.
    XML Response Pattern :
    ======================
    <? xml version="1.1" ?>
    <dropdown>
    <option>
    <val>CUSTOMIZED_VALUE</val>
    <text>CUSTOMIZED_VALUE</text>
    </option>
    </dropdown>Sample.jsp:
    ===========
    <%@page language="java" %>
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>Automatic Drop-Down Updation</title>
         <script language="javascript">
          // Global Variable for XmlHttp Request Object  
          var xmlhttp
          // Timer Variables
          var c = 0
          var t
           /* A function which calls a servlet  named AjaxServlet to get XmlData using XmlHttpObject */    
            function refreshCombo(txt){
                xmlhttp = null
                // code for initializing XmlHttpRequest Object On Browsers like  Mozilla, etc.
                if (window.XMLHttpRequest){
                     xmlhttp = new XMLHttpRequest()
                // code for initializing XmlHttpRequest Object On Browsers like IE
               else if (window.ActiveXObject) {
                   xmlhttp = new ActiveXObject("Microsoft.XMLHTTP")
               if (xmlhttp != null){
                  // Setting the Action url to get XmlData
                   url = "dropdown.do?count="+txt;
                   // Course of Action That Should be Made if their is a change in XmlHttpRequest Object ReadyState NOTE : it is 4 when it has got request from CGI
                   xmlhttp.onreadystatechange = getResponseAction;
                   // Open the Request by passing Type of Request & CGI URL
                   xmlhttp.open("GET",url,true);
                   // Sending URL Encoded Data
                   xmlhttp.send(null);
               else{
                 // Only Broswers like IE 5.0,Mozilla & all other browser which support XML data Supports AJAX Technology
                 // In the Below case it looks as if the browser is not compatiable
                  alert("Your browser does not support XMLHTTP.")
          /* Used for verifing right ReadyState & Status of XmlHttpRequest Object returns true if it is verified */
          function verifyReadyState(obj){
             // As Said above if XmlHttp.ReadyState == 4 then the Page Has got Response from WebServer
              if(obj.readyState == 4){
               // Similarly if XmlHttp.status == 200 it means that we have got a Valid response from the WebServer
                if(obj.status == 200){               
                    return true
                 else{
                    alert("Problem retrieving XML data")
          /* Action that has to take place after getting reponse */
          function getResponseAction(){
              // Verifying State & Status
              if(verifyReadyState(xmlhttp) == true){
                  // Building a DOM parser from Response Object
                  var response = xmlhttp.responseXML.documentElement
                  // Deleting all the Present Elements in the Drop-Down Box
                  drRemove()      
                  // Checking for the Root Node Tag
                  var x = response.getElementsByTagName("option")
                  var val
                  var tex
                  var optn
                  for(var i = 0;i < x.length; i++){
                     optn = document.createElement("OPTION")
                     var er
                     // Checking for the tag which holds the value of the Drop-Down combo element
                     val = x.getElementsByTagName("val")
    try{
    // Assigning the value to a Drop-Down Set Element
    optn.value = val[0].firstChild.data
    } catch(er){
    // Checking for the tag which holds the Text of the Drop-Down combo element
    tex = x[i].getElementsByTagName("text")
    try{
    // Assigning the Text to a Drop-Down Set Element
    optn.text = tex[0].firstChild.data
    } catch(er){
    // Adding the Set Element to the Drop-Down
    document.SampleForm.SampleCombo.options.add(optn)
    /* Function removes all the elements in the Drop-Down */
    function drRemove(){
    var x = document.SampleForm.SampleCombo
    for(var i = document.SampleForm.SampleCombo.length - 1 ; i >= 0 ; i--){                     
    x.remove(i)
    </script>
    </head>
    <body onload="syncCount()">
    <pre> <h1>Refresh Drop-Down <div id='txt'> </div> </h1></pre>
    <form name="SampleForm">
    <!-- Drop Down which has country list -->
    <select name="x" onchange="refreshCombo(this.value)">
                   <option value="1">United States</option>
                   <option value="2">United Kingdom</option>
                   <option value="3">United Arab Emriates</option>
    </select>
    <!-- Drop Down which is dependent on Country Drop down get list of states -->
    <select name="SampleCombo">
    <option value="-1">Pick One</option>
    </select>
    </form>
    </body>
    </html>
    struts-config.xml:
    ==================
    <action-mappings>
    <action path="/dropdown" type="com.controlleraction.AjaxActionClass">
    <forward name="error" path="/error.jsp"/>
    </action>
    </action-mappings>AjaxActionClass.java:
    =====================
    package com.controlleraction;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    import org.apache.struts.action.ActionErrors;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
    public class AjaxActionClass extends DispatchAction {
      public ActionForward execute( ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response) throws Exception {
        String req = new String("");
        try{
           req = request.getParameter("count");
        } catch(Exception exp){
       if(!req.equals("")){
           response.setContentType("text/xml");        
           response.setHeader("Pragma","no-cache");
           response.setHeader("Cache-Control","no-cache,post-check=0,pre-check=0");
           PrintWriter out = response.getWriter();
           /*a sample bean where we trying to call a service from Model*/
           com.Biz.XmlBean xml = new XmlBean();
           String buffer = xml.getXmlData(req);
           if(xml.close() == true && buffer.equals("") == false)
             out.write(buffer);     
           return(null);
      } else {
         return new ActionForward("error");
    }XmlBean.java:
    =============
    * XmlBean.java
    import java.sql.*;
    import java.util.*;
    import java.io.*;
    * @author RaHuL
    public class XmlBean {
        private Connection con = null;
        private PreparedStatement pstmt = null;
        private ResultSet rs = null;
        // Setting CLASSURL path to TYPE I Driver
        private String CLASSURL = "sun.jdbc.odbc.JdbcOdbcDriver";
        /* Specifing CONNECTION PATH to a DSN named TestDsn
         * Please Make Sure you create a DSN Named TestDsn to your database which holds EMP table
        private String CONNECTIONURL = "jdbc:odbc:TestDsn";
        boolean IS_ESTABLISHED = false;
        /** Creates a new instance of XmlBean and also establishes DB Connections */
        public XmlBean() {
            try{
                Class.forName(CLASSURL);
                con = DriverManager.getConnection(CONNECTIONURL,"admin","");
                IS_ESTABLISHED = true;
            } catch(SQLException sqe){
                sqe.printStackTrace();
            } catch(Exception exp){
                exp.printStackTrace();
        /* Generates XmlData For the Business Logic Specified */
        public String getXmlData(String req){
            String XmlBuffer = new String("");
            if(IS_ESTABLISHED == true){
                try{
                    pstmt = con.prepareStatement("SELECT stateid,statename FROM STATE_TABLE where countryid = ?");
                    pstmt.setString(1,req);
                    rs = pstmt.executeQuery();
                    if(rs != null){
                        XmlBuffer = XmlBuffer + "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>";
                        XmlBuffer = XmlBuffer + "<!--  Edited by Rahul Sharma -->";
                        // Root Node
                        XmlBuffer = XmlBuffer + "<dropdown>";
                        while(rs.next()){
                            String value = rs.getString(1);
                            String text = rs.getString(2);
                            // Sub-root Node
                            XmlBuffer = XmlBuffer + "<option>";
                            // node which holds value of drop-down combo
                            XmlBuffer = XmlBuffer + "<val>"+value+"</val>";
                            // node which holds text for drop-down combo
                            XmlBuffer = XmlBuffer + "<text>"+text+"</text>";
                            XmlBuffer = XmlBuffer + "</option>";
                        XmlBuffer = XmlBuffer + "</dropdown>";
                }catch(SQLException sqe){
                    sqe.printStackTrace();
                } catch(Exception exp){
                    exp.printStackTrace();
            return(XmlBuffer);
        /* Closes the DB Connection Conmpletely */
        public  boolean close(){
            if(IS_ESTABLISHED == true){
                try{
                    pstmt.close();
                    con.close();
                    return(true);
                } catch(SQLException sqe){
                    sqe.printStackTrace();
                } catch(Exception exp){
                    exp.printStackTrace();
            return(false);
    NOTE: I understand i'm not completely coded things as per proper coding standards.please execuse me for that as this example was just given to enable user to learn how XmlHttpRquest,reponseXML
    can be used for better purposes instead of devising manual parsing.
    where i've used XmlHttpResponse pattern to be in XML. you may make use of other practices like JSON & so on depending on your requirement..
    and and if you are more instrested in integrating Struts with AJAX using few frameworks & customized tag based support please go though the below link.
    http://struts.sourceforge.net/ajaxtags/index.html
    Hope that might help :)
    REGARDS,
    RaHuL

Maybe you are looking for

  • USB 2.0 ports on MS-6398E board

    I'm new to the MSI forums so bear with me if my style of posting is not yet quite right. I've got an MS-6398E motherboard and in Win2K the Device Manager lists one USB 2.0 root hub and 3 USB root hubs (no numeric designation). When I check the proper

  • Strange editing problems in Mail

    I have been having two quirks in Mail while editing. When composing emails I sometimes send several articles from online sources such as NY Times. After copying into mail, I delete the garbage such a "print" links from the original. If I do not selec

  • Log version status for message in PI message monitoring

    Hi All, we send IDocs from ECC to PI and then external systems. It's working fine all the time But third party system did not recieve only one message out of many. This missing message showing in PI  is like LOG version when I look at in monitoring.I

  • Appraisal template download upload in excel

    Hi All We have the download upload functionality of appraisal template in PDF by offline layout setting in phap_catalog_pa. My query is can the upload and download of the template can be done in excel also. Our requirement is to download the appraisa

  • Data Controls

    Hello, is it possible to create mutiple datacontols in adf application ? OR is it always only one. thx