For struts - fwd the formbean in multiple JSP-action-JSPs

Hello All,
I know this is EJB forum but just I had one Qn so posting.
I know you all must be doing struts as you are doing EJbs.
I have following things and I want to HIT the DB only at last JSP
submit click. How do I keep the formbeans ?
READ EVERYTHING CAREFULLY ---------
I can use session but, I want request or some similar way, or
if there is any thing struts way,
if all is not possible then I will go for session.
Please don't tell me any request or action chaining because
that is not something the case here and as it is highly discouraged
I am NOT going to use that. its not that case anyways,
JSP 1 - has a formbean 1
- submit - goes to Action1
ACTION1 - get the formBean1 ( I get the values1 here hahahaha)
do any processing on formBean1 if needed
set the formbean1 in request ( i am doing this )
mapping.findfwd("success") - to JSP 2
JSP2 - <%get the formbean1 from request and SOP it
(I get the values1 here hahaha) %>
has its own field and formBean2
submit - goes to Action2
ACTION2 - get the formBean2 (I get the values2 haha)
get the formBean1 (I get NULL ?????)
Point is I want to set the formBean1 from request
orginating from JSP2 -submit. JSP2-formBean2 gets submitted there
properly but how can keep fwding formBean1.
Please don't tell me to keep ALLL formBean1 values as hidden
in JSP2. as its not good logic and its tooo much values. etc. etc.
As a matter of fact I have 4 such JSPs and if user selectes codes
on page 4 then only send all earlier 3 formBeans + current formBean4
to DB, else ignore all ( means just ignore, go to new jsp or main menu
let all formBeans garbage collected... hahahaha )
How can I do this ?
I will reply to any Qn s immly as I am in hurry....delivery is very very near
guys ..........:)
anyways,
Enjoy the coding.....!!!
Sandeep

Off hand, the only thing I can think of is to create two completely separate projects.
However, if you want to maintain a good development team and project, I suggest you keep it as one project and not try to hide anything from one group of developers. Instead, install CVS as your repository. It will track what changes were made and by who and you can roll back to a previous version of a JSP or java class if necessary. Your team should be briefed on the architecture you decide on (Spring, Sturts, etc), and basic good coding practices you want enforced.
Here are a few rules:
* nothing is to be checked into CVS that doesn't compile cleanly.
* nothing is to be checked into CVS that has any error or warning messages form your IDE outstanding.
* nothing is checked into CVS without the comment field of the commit dialog box being filled in.
* You have one build.xml file that eveyone uses to compile all code.
* All JSP pages are to be well formed xml (no dangling tags).
* all java classes and JSP pages are to be properly indented.
* all classes are to have javadoc describing what a class is for, and all functions are to have javadoc describing what the function does (not how it does it).

Similar Messages

  • Problem for Struts action to insert multiple records

    I am writting a code for Struts action which inserting a single record to table A and multiple records to table B .The architecture that I applied is Struts+Spring+iBatis.The multiple records are come from a 10-rows table in the design.The name of each column element is same.The field name other than these are just single-row field.
    <tr>
    <td><input name="date" type="text" size="12" /></td>
    <td><input name="billno" type="text" size="8" /></td>
    <td><input name="desc" type="text" size="11" /></td>
    <td><input name="purpose" type="text" size="20" /></td>
    <td><input name="proName" type="text" size="6" /></td>
    <td><input name="trainingCost" type="text" size="5" /></td>
    <td><input name="travelCost" type="text" size="7" /></td>
    <td><input name="entCost"  type="text" size="5" /></td>
    <td><input name="miscCost" type="text" size="5" /></td>
    </tr> I am using three DTO objects to hold the data.claimArray is the ClaimDTO array that hold the multiple record insert to table B.claimdto is the object that hold the single field record to table A.claim_dtldto is the object that hold the single field record to table B.
    PK of table A and table B are claimNo and claimDtlNo respectively.claimNo is also FK of table B. HTMLUtil is just an API that I used it for type conversion.There will have two insert statements in iBatis xml, insertClaim & insertClaimDtl to insert data into table A and table B respectively.I not sure what went wrong in the code,the data is not inserted into db.Thank advanced for you guys help..
    This is the codes in Action file:
    public class InsertClaimAction extends SpringAction {
       public ActionForward execute(ActionMapping mapping,
                                     ActionForm form,
                                     HttpServletRequest request,
                                     HttpServletResponse response) throws Exception {
        // string arrays that store multiple values
        String [] date = new String[10];
        String [] billno = new String[10];
        String [] description = new String[10];
        String [] purpose = new String[10];
        String [] proName = new String[10];
        String [] trainingCost = new String[10];
        String [] travelCost = new String[10];
        String [] entCost = new String[10];
        String [] miscCost = new String[10];
        String staffName = request.getParameter("name");
        String claimMy = request.getParameter("monthyear");
        String department = request.getParameter("department");
        String designation = request.getParameter("designation");
        Double excrate =  HTMLUtil.str2double(request.getParameter("excrate"),0.0);
        Double grandTotal = HTMLUtil.str2double(request.getParameter("grandTotal"),0.0);
        Double totalRM = HTMLUtil.str2double(request.getParameter("totalRM"),0.0);
        Double totalFC =    HTMLUtil.str2double(request.getParameter("totalFC"),0.0);
        String fcName = request.getParameter("fcAbbr");
        if(request.getParameter("date") != null)
            date = request.getParameterValues("date");
        if(request.getParameter("billno") != null)
            billno = request.getParameterValues("billno");
        if(request.getParameter("description") != null)
            description = request.getParameterValues("description");
        if(request.getParameter("purpose") != null)
            purpose = request.getParameterValues("purpose");
        if(request.getParameter("proName") != null)
            proName = request.getParameterValues("proName");
        if(request.getParameter("trainingCost") != null)
            trainingCost = request.getParameterValues("trainingCost");
        if(request.getParameter("travelCost") != null)
            travelCost = request.getParameterValues("travelCost");
        if(request.getParameter("entCost") != null)
            entCost = request.getParameterValues("entCost");
        if(request.getParameter("miscCost") != null)
            miscCost = request.getParameterValues("miscCost");
          //initialize dto
        ClaimDTO claimdto = new ClaimDTO();
        ClaimDTO claim_dtldto = new ClaimDTO();
        ClaimDTO[] claimArray = new ClaimDTO[10];
        claimdto.setClaimNo(claimNo);
        claimdto.setStaffName(staffName);
        claimdto.setClaimMy(claimMy);
        claimdto.setDepartment(department);
        claimdto.setDesignation(designation);
        claimdto.setExcrate(excrate);
        claimdto.setGrandTotal(grandTotal);
        claim_dtldto.setClaimDtlNo(claimDtlNo);
        claim_dtldto.setClaimNo(claimNo);
        claim_dtldto.setTotalRM(totalRM);
        claim_dtldto.setTotalFC(totalFC);
        claim_dtldto.setFcName(fcName);
        for(int i = 0;i < claimArray.length;i++) {
            if(claimArray[i] != null) {
                claimArray.setDate(date[i]);
    claimArray[i].setBillno(billno[i]);
    claimArray[i].setDescription(description[i]);
    claimArray[i].setPurpose(purpose[i]);
    claimArray[i].setProName(proName[i]);
    claimArray[i].setTrainingCost(Double.parseDouble(trainingCost[i]));
    claimArray[i].setTravelCost(Double.parseDouble(travelCost[i]));
    claimArray[i].setEntCost(Double.parseDouble(entCost[i]));
    claimArray[i].setMiscCost(Double.parseDouble(miscCost[i]));
    //service
    ClaimService springservice = (ClaimService)getBean("ClaimService");
    springservice.insertClaim(claimdto);
    springservice.insertClaimDtl(claim_dtldto,claimArray);
    return mapping.findForward("success");

    Two things; you need to pass #number# as a form field and you
    need to pull the correct record out.
    Use this:
    <cfloop list="#form.fieldnames#" index="fieldName">
    <CFSET record = Evaluate("form.record_#number#")>
    </cfloop>
    Here's some example code:

  • What do I download for Struts/JSP/Hibernate?

    My organization has purchased a five-user license for "Workshop" and I would like to use it for Struts/Hibernate/JSP development. However, it's not clear what I need to download and install.
    I tried downloading and installing both of these files:
    workshopstudio102_win32.exe
    workshop102_win32.exe
    In both cases, after the dust settled there was no application called "Workshop" on my Windows XP system.
    There is now something called "WorkSPACE Studio 1.1." ("Space," not "shop.")
    What is "WorkSpace Studio?" I never heard of it before I ran this installer.
    What is the difference between "Workshop Studio" and "Workshop for WebLogic?"
    What do I download to get Eclipse-based Struts/JSP/Hibernate development tools?
    How do I install it?
    Thanks,
    Ethan
    Edited by ethanmichaels at 03/26/2008 4:48 PM

    Hi Ethan,
    The license you have purchased is for WorkshopStudio 10.2
    This allows you to develop Struts/Hibernate/JSP applications against both BEA and non BEA servers.
    Workshop for WebLogic allows users to develop applications against BEA WebLogic Servers and does not require a special license
    More information on Workspace Studio is available at http://edocs.bea.com/wlw/docs102/workspaceFAQ.html
    Hope this helps
    cheers
    Raj

  • Can I use the "same" button multiple times for multiple galleries?

    OK so I am extremely untrained in CS4 and Actionscript. However I have managed to get along fairly well until I started to dynamically upload images as a gallery. This works great if I have one gallery, but for my site I have 9 galleries!!! I have a back and next button, but I want to be able to use those same buttons for all of the galleries so they look the same. I have split them up and renamed them, but I am clueless on how to script the buttons to work. Please help...and don't laugh at my poor scripting. This is what I have now because I do not know where to put the other button names without getting errors.
    stop();
    next_btn .addEventListener(MouseEvent.CLICK, nextImage);
    var imageNumber: Number=1;
    function checkNumber(): void{
        next_btn.visible=true;
        back_btn.visible=true;
        if(imageNumber==15){
            trace(imageNumber);
        next_btn.visible=false;
        if(imageNumber==1){
            trace(imageNumber);
        back_btn.visible=false;
    function nextImage(evtObj:MouseEvent):void {
        imageNumber++;
        mc_engagement.source= "photo/engagement/en0"+imageNumber+".jpg";
        mc_amish.source= "photo/amish/Amish"+imageNumber+".jpg";
        mc_chicago.source= "photo/chicago/ch"+imageNumber+".jpg";
        mc_landscapes.source= "photo/landscapes/land"+imageNumber+".jpg";
        mc_goodvsevil.source= "photo/goodvsevil/ge"+imageNumber+".png";
        mc_animals.source= "design/animals/an"+imageNumber+".png";
        mc_icons.source= "design/icons/icon0"+imageNumber+".png";
        mc_objects.source= "design/objects/pc"+imageNumber+".png";
        mc_typography.source= "design/typography/type"+imageNumber+".png";
        checkNumber();
    back_btn .addEventListener(MouseEvent.CLICK, backImage);
    function backImage(evtObj:MouseEvent):void {
        imageNumber--;
        mc_engagement.source= "photo/engagement/en0"+imageNumber+".jpg";
        mc_amish.source= "photo/amish/Amish"+imageNumber+".jpg";
        mc_chicago.source= "photo/chicago/ch"+imageNumber+".jpg";
        mc_landscapes.source= "photo/landscapes/land"+imageNumber+".jpg";
        mc_goodvsevil.source= "photo/goodvsevil/ge"+imageNumber+".png";
        mc_animals.source= "design/animals/an"+imageNumber+".png";
        mc_icons.source= "design/icons/icon0"+imageNumber+".png";
        mc_objects.source= "design/objects/pc"+imageNumber+".png";
        mc_typography.source= "design/typography/type"+imageNumber+".png";
        checkNumber();

    I'm still a novice with Flash myself, but I have two comments.
    First, at this point, won't your buttons control all galleries at the same time? Which means, if I go to image 5 in one gallery, then move to another gallery, I'll start at image 5, because the actions are all connected.
    Second, you can definitely use the same buttons for multiple galleries. It seems to me that as long as you've assigned the buttons an instance name, these actions should already work to control all the galleries (see the note above). I guess I would need to understand a bit more about how your project is built.

  • I have multiple devices in my family. Each of us has an iPhone and an iPad. Is there a way for each of us to have our own Apple ID but one account so we can all get the same music, movies, books, etc. I can't see paying twice for something in the same fam

    I have multiple devices in my family. Each of us has an iPhone and an iPad. Is there a way for each of us to have our own Apple ID but one account so we can all get the same music, movies, books, etc. I can't see paying twice for something in the same family.

    Welcome to the world of digital media. Your can't really transfer it. I don't know what the rules are about transferring to your spouse but I do know that in some cases when you die, your heirs cannot inherit your digital media. This is why there is still an advantage to buying the CD since the usage rights belong to whomever holds the physical media.
    A possible workaround is to burn the songs to a music CD with yout account (tracks only without song titles) and then having your wife upload it as a regular music CD onto her account. It's been a while since i've done this so I'm not sure if it would work now.
    Please note that I'm not advocating copyright and/or TOS violations. I'm only suggesting ways to copy music for your own personal use which has traditonally been permitted. I only did this because I wanted to convert iTunes songs to mp3 files so I could burn them onto a data CD for use in my car. It would make sense that since married couples are a joint entity, this would be personal use.
    Also, I'm not a lawyer so don't take this as legal advice.

  • Why is Apple TV showing the same computer multiple times for Home Sharing?

    Why is my Apple TV showing the same computer multiple times for Home Sharing? Also have connectivity issues. Sometimes will lose signal.
    JonRod's music
    JonRod's music
    JonRod's music
    JonRod's music
    JonRod's music
    I recently updated to Yosemite and never had this issue before.

    I'm not 100% sure of the ins and outs, but it's some sort of known issue between Yosemite, Airport and wifi. All you can do is wait for a fix and keep restarting your equipment as and when needed, unless you have the ability to connect your Mac via ethernet.

  • If I buy creative cloud student plan, can I use the software on multiple computers. I have 2 laptops for school.

    If I buy creative cloud student plan, can I use the software on multiple computers. I have 2 laptops for school.

    Creative Cloud Help | Creative Cloud / Common Questions
    Can I use the software I download from Creative Cloud on more than one machine?
    Yes. Creative Cloud desktop applications can be downloaded and installed on multiple computers, regardless of operating system. However, activation is limited to two machines per individual associated with the membership. See the terms of use for more information. Learn how to deactivate a Creative Cloud license on a machine.

  • How does iCal, or Calendar, order the display of multiple events for the same time?

    I can't for the life of me figure out how iCal orders the display of multiple items at the same time.  Does anyone have a clue?  It's not alphabetical.  It's not according the the order of the calendars in the left pane.  Is it just random?  Any help would be greatly appreciated.

    In the focus lost eventhandling start a thread which does
    the actual handling.
    the new thread waits for a little time (0.1 seconds)
    the click event of the button checks for a thread like the one above and tells it not to execute
    This way you execute the for the lost focus event only if
    the ok button isn't clicked in the same process ... not
    realy good, because it kind of relies on the ordering of threads ... but maybe it still works for you?

  • Service procurement for the free texts ( Multiple line items in PO)

    In the service procurement for the free texts ( Multiple line items in PO)referring to the same  Contract we are cretaing the POs
    thro ME59 ( Program RM06BB20)  an unusual error message appears as under:
    "_Material/Service group STGOP2 does not exist"_This Material group is unavailable in T023 as well.
    We checked the same issue by recreating with the exact data in the Test environment and everything works OK
    We are working on the R3 version 470...
    Any body faced such an issue ?
    Any clues pls?
    Regards,
    Nagarajan

    Hello,
    We have faced another issue of the same nature while a PO is being created using the tcode ME21N for service free text items referring a PR ( Service item has no Contract assigned but a fixed vendor)
    The error relates to SE419 ( Mat grp 'XXXX' does not exist)
    Any takers..
    We are using a custom doc type  for the PR
    Any hep /clue is appreciated
    Regards,
    Nagarajan

  • HT1451 when editing info, how do i select multiple items to edit a group? For example, changing the artist name on multiple tracks at once?

    when editing info, how do i select multiple items to edit a group? For example, changing the artist name on multiple tracks at once?

    Same way you select multipl items anywhere else.
    Hold ctrl and click the items you want.
    If they are in consecutive order, click the 1st then Shift click the last.

  • MDM: Search for images in the dialog window "Select Multiple Images"

    Hi,
    are there possibilities to search for images in the dialog window "Select Multiple Images" (if you want to add a image to a record)?
    I know the possibilities to sort the images and the possibilities with the data groups. But I don't know a possibilities to search for a single image.
    Thanks for any help!
    Best regards, Melanie

    Hi,
          From the question you asked; its not much clear what your clear requirement is; but if its what i get then the solution is:
          How is that you want to select the image? With Image view or By viewing the image itself ? For it when u select "Select Multiple Images" you can find two as "Available Images" and "Selected Images" and in between u can find some buttons, after "All, Add, Remove and None" you can find two buttons "Thumb Nail" and "view Details". I think you can use these buttons for your solution.
          When you select "Thumb Nail" button you can see the image in real and select the image.  OR you can select "View Details" and check the file name or path or the requirement as required.
          CHARAN
    Lead, follow or Get out of way

  • For the cm with multiple bps, what are the options for workaround?

    For the cm with multiple bps, what are the options for workaround?
    customer a purchases 1000
    and returns 800 at POS
    customer b was used at SAP related to  this transaction, purchase amounting to 2000,what can we do to apply the returns of customer a to customer b of 800 return transaction at pos?customer a and customer b code pertains to just one client---but were given different codes at POS and at SAP

    Hi,
    If one customer has two codes, you can only do manual journal entry to adjust their accounts.
    Thanks,
    Gordon

  • Dispatch center - Select multiple tasks for scheduling at the same time

    Hi!
    I need a consultation regarding Dispatch center. Is there a functionality to select multiple tasks for scheduling at the same time for one resource?
    Please, guys, this is urgent.
    Jan

    You can schedule a single task or multiple tasks automatically directly from the
    dispatch center. The scheduling criteria applied come from Advanced Scheduler.
    Make Sure, you have the advanced scheduler. With out Advanced Scheduler and by just using Advice, you can only assign one task at a time.
    HTH
    ps: for more information, refer Field Service User Guide, "Scheduling Tasks"

  • I am having a difficult time getting the duration of multiple selected clips. The duration display only will display the time for one clip.  Yes, I know I can add them up myself, but why?  :-)

    I am having a difficult time getting the duration of multiple selected clips. The duration display will only display the time for one clip not multiple clips.  Yes, I know I can add them up myself, but why?  :-)
    I am using imovie 10.0.6

    For reasons that you would have to ask Apple for they decided not to allow the precise position of the playhead to be shown in iMovie 10 (unlike in FCP 10.1.x).
    Geoff

  • Getting some errors in console of the tomcat for struts web application

    hi
    am getting following error while deploying my struts app
    my struts-config file is as followsl
    <struts-config>
    <form-beans>
    <form-bean name="myForm" type="MyForm" />
    </form-beans>
    <action-mappings>
    <action path="/hello"
                   input="/login.jsp"
                   name="myForm"
                   type="MyAction"
                   scope="request"
                   validate="true" >
                   <forward name="success" path="/success.jsp" />
                   <forward name="failure" path="/failure.jsp" />
         </action>
    </action-mappings>
    <message-resources parameter="ApplicationResources" />
    </struts-config>
    SEVERE: Parse Error at line 1 column 15: Document is invalid: no grammar found.
    org.xml.sax.SAXParseException: Document is invalid: no grammar found.
         at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
         at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(Unknown Source)
         at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
         at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
         at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
         at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl$NSContentDispatcher.scanRootElementHook(Unknown Source)
         at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
         at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
         at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
         at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
         at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
         at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
         at org.apache.commons.digester.Digester.parse(Digester.java:1548)
         at org.apache.struts.action.ActionServlet.parseModuleConfigFile(ActionServlet.java:708)
         at org.apache.struts.action.ActionServlet.initModuleConfig(ActionServlet.java:670)
         at org.apache.struts.action.ActionServlet.init(ActionServlet.java:329)
         at javax.servlet.GenericServlet.init(GenericServlet.java:211)
         at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1105)
         at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:932)
         at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3917)
         at org.apache.catalina.core.StandardContext.start(StandardContext.java:4201)
         at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
         at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
         at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
         at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
         at org.apache.catalina.core.StandardService.start(StandardService.java:450)
         at org.apache.catalina.core.StandardServer.start(StandardServer.java:709)
         at org.apache.catalina.startup.Catalina.start(Catalina.java:551)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
         at java.lang.reflect.Method.invoke(Unknown Source)
         at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)
         at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)
    Sep 24, 2007 12:56:33 PM org.apache.commons.digester.Digester error
    SEVERE: Parse Error at line 1 column 15: Document root element "struts-config", must match DOCTYPE root "null".
    org.xml.sax.SAXParseException: Document root element "struts-config", must match DOCTYPE root "null".
         at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
         at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(Unknown Source)
         at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
         at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
         at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
         at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl$NSContentDispatcher.scanRootElementHook(Unknown Source)
         at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
         at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
         at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
         at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
         at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
         at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
         at org.apache.commons.digester.Digester.parse(Digester.java:1548)
         at org.apache.struts.action.ActionServlet.parseModuleConfigFile(ActionServlet.java:708)
         at org.apache.struts.action.ActionServlet.initModuleConfig(ActionServlet.java:670)
         at org.apache.struts.action.ActionServlet.init(ActionServlet.java:329)
         at javax.servlet.GenericServlet.init(GenericServlet.java:211)
         at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1105)
         at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:932)
         at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3917)
         at org.apache.catalina.core.StandardContext.start(StandardContext.java:4201)
         at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
         at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
         at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
         at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
         at org.apache.catalina.core.StandardService.start(StandardService.java:450)
         at org.apache.catalina.core.StandardServer.start(StandardServer.java:709)
         at org.apache.catalina.startup.Catalina.start(Catalina.java:551)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
         at java.lang.reflect.Method.invoke(Unknown Source)
         at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)
         at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)

    sikandar wrote:
    SEVERE: Parse Error at line 1 column 15: Document is invalid: no grammar found.
    org.xml.sax.SAXParseException: Document is invalid: no grammar found.
    Sep 24, 2007 12:56:33 PM org.apache.commons.digester.Digester error
    SEVERE: Parse Error at line 1 column 15: Document root element "struts-config", must match DOCTYPE root "null".
    org.xml.sax.SAXParseException: Document root element "struts-config", must match DOCTYPE root "null".
         at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)Have you declared the DTD? You should have lines like this:
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts-config PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
    "http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">at the start of you struts-config.xml.

Maybe you are looking for