Form action context path

Hi all.
I have a strange problem, that I hope some of you can help me with.
First of all let me explain my setup:
1. I have a faces page, that in an action method does a redirect to a different server.
2. That server then redirects back to a Servlet on my application server.
3. The Servlet then forwards to one of my own faces pages. (same context)
4. Page is displayed, BUT the form tag is now rendered like this:
<form id="form1" method="post" action="/app/servlet/testpage.jsp">
should have looked like this:
<form id="form1" method="post" action="/app/testpage.jsp">
Somehow the Servlet (context?) is added to the context path???
More info:
The way I do the forward in step 3, is like this:
LifecycleFactory lFactory = (LifecycleFactory) FactoryFinder
                    .getFactory(FactoryFinder.LIFECYCLE_FACTORY);
          Lifecycle lifecycle = lFactory
                    .getLifecycle(LifecycleFactory.DEFAULT_LIFECYCLE);
          FacesContextFactory fcFactory = (FacesContextFactory) FactoryFinder
                    .getFactory(FactoryFinder.FACES_CONTEXT_FACTORY);
          FacesContext facesContext = fcFactory.getFacesContext(
                    getServletContext(), request, response, lifecycle);
          Application application = facesContext.getApplication();
          ViewHandler viewHandler = application.getViewHandler();
          String viewId = "";
          UIViewRoot view = viewHandler.createView(facesContext, viewId);
          facesContext.setViewRoot(view);
          String outcome = "ok";
          NavigationHandler navigationHandler = application
                    .getNavigationHandler();
          navigationHandler.handleNavigation(facesContext, null, outcome);
          lifecycle.render(facesContext);Guess that's might be a cause to the problem?
Have tried a plain servlet forward (and then no additional context is added..., BUT causes lots of other problems)
          request.getRequestDispatcher("xxx").forward(request, response);Will really appreciate some input on this.
Thanks in advance.
Edited by: mikfu on Jan 5, 2009 9:44 PM

Hi - me again.
Can anybody tell me is this should be the expected behaviour for such a setup?
I tried another setup, where I redirect to a page within the same application context, and is still getting same problem.
Thanks.

Similar Messages

  • Problems with file uploading servlet, the form action doesnt capture url

    Hi, i have one problem. I am working on a project , i have created a servlet that takes uploaded files and processses them and links them back to user to download. The servlet works perfectly from my computer, I am using apache-tomcat-6.0.16 and java 1.6 , I have two forms called encrypt.html and decrypt.html, I will post both of them, now the problem is when somebody access it on the internet while i am running apache, they get a connection was reset on a firefox browser and same stuff on Internet Explorer.
    i have checked my server logs and saw nothing unusual there, So please if you can help me, it is my project.
    I am pasting html file and error message that other users where getting remotely.
    <html>
    <head>
    <meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
    <title>Stego Form</title>
    <link rel='STYLESHEET' type='text/css' href='encrypt.css'>
    </head>
    <body>
    <center>
    <form name='encrypt' enctype='multipart/form-data' method='POST' action='http://localhost:8080/examples/temp2
    ' accept-charset='UTF-8'>
    <input type='hidden' name='sfm_form_submitted' value='yes'>
    </input>
    <input type='hidden' name='eord' value='e'>
    <select name='encryption' size='1'>
             <option value='Select an encryption' selected>
             Select an encryption
             </option>
             <option value='DES'>
             DES
             </option>
             <option value='Tripple DES'>
             Tripple DES
             </option>
    </select>
             <input type='file' name='overt' size='20'>
             <input type='file' name='covert' size='20'>
             <input type='submit' name='submit' value='Submit'>
    </form>
    </center>
    </body>
    </html>so it works for me even if i access the page with my ip , but for others it doesnt work,
    now the user got this xhtml page that i will show, i cant find attach button so i am pasting here.
    here is the servlet coding
    import java.io.*;
    import java.util.*;
    import javax.servlet.ServletException;
    import javax.servlet.http.*;
    import org.apache.commons.fileupload.*;
    import org.apache.commons.fileupload.disk.DiskFileItemFactory;
    import org.apache.commons.fileupload.servlet.ServletFileUpload;
    public class temp2 extends HttpServlet
        FileInputStream fin;
        String filenames[] = new String[2],fieldname,fieldval;
        String keyfile,IVfile;
        String names[] = new String[2];
        public temp2()
            super();
        @Override
        public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
            doPost(request, response);
        @Override
        public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
            String eord="";
            List lst = null;
            boolean isMultiPart = ServletFileUpload.isMultipartContent(request);
            if (!isMultiPart) // check whether the post request is actually multipart
                System.out.println("ERROR NOT MULTIPART");
                System.exit(0);
            DiskFileItemFactory fif = new DiskFileItemFactory();
            ServletFileUpload sfu = new ServletFileUpload(fif);
            sfu.setSizeMax(10000000);
            try {  lst = sfu.parseRequest(request);  }
            catch (FileUploadException ex)
            { System.out.println("ERROR IN PARSING FILES" + ex); System.exit(0);  }
            if(lst.isEmpty())  // check whether request is empty
                System.out.println("ERROR LIST SIZE NOT GOOD : " + lst.size());
                System.exit(0);
            Iterator x = lst.iterator();
            int i = 0;
            FileItem f = (FileItem)x.next();
            f = (FileItem)x.next();
            System.out.println(f.getFieldName());
            if(f.getFieldName().equalsIgnoreCase("eord")) // check hidden field to know the case : encrypt or decrypt
                eord = f.getString();
                System.out.println(f.getString());
            else // if it is not first field exit
                System.out.println("Invalid FORM");
                System.exit(0);
            f = (FileItem)x.next(); // next field
            if(f.getFieldName().equalsIgnoreCase("encryption")) // type of encryption des / tdes
                fieldname = f.getFieldName();
                fieldval = f.getString();
                System.out.println(f.getString());
            if(eord.equalsIgnoreCase("e")) // if it is encryption form only file required
                while(x.hasNext())
                    f = (FileItem)x.next();
                    if(!f.isFormField())
                        int check = f.getName().lastIndexOf(File.separator);
                        System.out.println(File.separator);
                        if(check==-1)
                            System.out.println(f.getName());
                            System.out.println("Unsupported browser : " + check);
                            System.exit(0);
                        File ff = new File("e:\\apache\\webapps\\temp\\"+f.getName().substring(check));
                        names[i] = ff.getName(); // original file names
                        try
                            f.write(ff);
                            filenames[i] = ff.getAbsolutePath();
                        // renamed    
                            ff.deleteOnExit();
                        }catch(Exception e) {System.out.println("Error writing file"+ ff.getAbsolutePath()); System.exit(0);}
                        i++;
                    try { System.in.read(); } catch(Exception e) {}
                }// endwhile
                if(fieldval.equalsIgnoreCase("DES"))
                    System.out.println("DES 1"+filenames[1]);
                    javades o = new javades(filenames[1]); // the file to be encrypted   
                    filenames[1] = "e:\\apache\\webapps\\temp\\files\\" + names[1];
                    System.out.println("should be original" + filenames[1]);
                else if(fieldval.equalsIgnoreCase("Tripple DES"))
                    javatdes o = new javatdes(filenames[1]);
                    filenames[1] = "e:\\apache\\webapps\\temp\\files\\" + names[1];
                    System.out.println(filenames[1]);
                System.out.println("Calling stego");
                filenames[0] = "e:\\apache\\webapps\\temp\\" + names[0];
                System.out.println("file 1 "+ filenames[0]);
                System.out.println("file 2"+ filenames[1]);
                try { System.in.read(); } catch(Exception e) {}
                stego s = new stego(filenames[0],filenames[1]);
                System.out.println("mainext " + s.mainext);
                // encryption done, and new files are loaded, now lets hide
                if(s.mainext.equalsIgnoreCase("wav"))
                    s.encodewav();
                    System.out.println("Encoded wave");
                else if(s.mainext.equalsIgnoreCase("bmp"))
                    System.out.println("Encoded bmp");
                    s.encodebmp();
                System.out.println("done !");
                PrintWriter pr = response.getWriter();
                pr.println("Greetings , Your work is done and saved, now download the following files");
                pr.println("The secret key file is needed for getting back your hidden file, so download that too");
                pr.write("<a href=\"/temp/files/IV.txt\">click here</a>");
                pr.write("<br/><a href=\"/temp/files/key.txt\">click here</a>");
                pr.write("<br/><a href=\"/temp/files/"+names[0]+"\">click here</a>");
                return;
            // if it is decryption case
            else if(eord.equalsIgnoreCase("d"))
                while(x.hasNext())
                    f = (FileItem)x.next();
                    if(!f.isFormField())
                        int check = f.getName().lastIndexOf(File.separator);
                        System.out.println(File.separator);
                        if(check==-1)
                            System.out.println(f.getName());
                            System.out.println("Unsupported browser : " + check);
                            System.exit(0);
                        File ff = new File("e:\\apache\\webapps\\temp\\"+f.getName().substring(check));
    // else if ladder to store paths of stegofile keyfile and IVfile                   
                        if(f.getFieldName().equalsIgnoreCase("stegofile"))
                            filenames[0] = ff.getAbsolutePath();
                        else if(f.getFieldName().equalsIgnoreCase("keyfile"))
                            keyfile = ff.getAbsolutePath();
                        else if(f.getFieldName().equalsIgnoreCase("IVfile"))
                            IVfile = ff.getAbsolutePath();
                        try
                            f.write(ff); // writes whole file at once
                        }catch(Exception e) {System.out.println("Error writing file"); System.exit(0);}
                }// endwhile
                System.out.println("Calling stego");
                System.out.println("file 1 "+ filenames[0]);
                stego s = new stego(filenames[0]);
                System.out.println("mainext " + s.mainext);
                if(s.mainext.equalsIgnoreCase("wav"))
                    s.decodewav();
                    System.out.println("Encoded wave");
                else if(s.mainext.equalsIgnoreCase("bmp"))
                    s.decodebmp();
                    System.out.println("Encoded bmp");
                System.out.println("done !");
                ////// hidden file has been retrieved , now lets decrypt it
                System.out.println("ext " + s.ext);
                filenames[0] = "e:\\apache\\webapps\\temp\\"+s.filename;
                System.out.println(filenames[0]);
                System.out.println(keyfile);
                System.out.println(IVfile);
                if(fieldval.equalsIgnoreCase("DES"))
                    javades o = new javades(filenames[0],keyfile,IVfile); // the file to be encrypted   
                    filenames[0] = "e:\\apache\\webapps\\temp\\" + ( new File(filenames[0]).getName());
                    System.out.println("should be original" + filenames[0]);
                else if(fieldval.equalsIgnoreCase("Tripple DES"))
                    javatdes o = new javatdes(filenames[0],keyfile,IVfile);
                    filenames[0] = "e:\\apache\\webapps\\temp\\" + ( new File(filenames[0]).getName());
                    System.out.println(filenames[0]);
                PrintWriter pr = response.getWriter();
                pr.write("Greetings, you have successfully retrieved your hidden file, now download it from here <br>");
                pr.write("<a href=\"http://localhost:8080/temp/files/" + (new File(filenames[0]).getName())+"\">Click here</a>");
    }and here is the xhtml file the user receives, whe he clicks the submit button,
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE html [
      <!ENTITY % htmlDTD
        PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "DTD/xhtml1-strict.dtd">
      %htmlDTD;
      <!ENTITY % netErrorDTD
        SYSTEM "chrome://global/locale/netError.dtd">
      %netErrorDTD;
    <!ENTITY loadError.label "Problem loading page">
    <!ENTITY retry.label "Try Again">
    <!-- Specific error messages -->
    <!ENTITY connectionFailure.title "Unable to connect">
    <!ENTITY connectionFailure.longDesc "&sharedLongDesc;">
    <!ENTITY deniedPortAccess.title "This address is restricted">
    <!ENTITY deniedPortAccess.longDesc "">
    <!ENTITY dnsNotFound.title "Server not found">
    <!ENTITY dnsNotFound.longDesc "
    <ul>
      <li>Check the address for typing errors such as
        <strong>ww</strong>.example.com instead of
        <strong>www</strong>.example.com</li>
      <li>If you are unable to load any pages, check your computer's network
        connection.</li>
      <li>If your computer or network is protected by a firewall or proxy, make sure
        that &brandShortName; is permitted to access the Web.</li>
    </ul>
    ">
    <!ENTITY fileNotFound.title "File not found">
    <!ENTITY fileNotFound.longDesc "
    <ul>
      <li>Check the file name for capitalization or other typing errors.</li>
      <li>Check to see if the file was moved, renamed or deleted.</li>
    </ul>
    ">
    <!ENTITY generic.title "Oops.">
    <!ENTITY generic.longDesc "
    <p>&brandShortName; can't load this page for some reason.</p>
    ">
    <!ENTITY malformedURI.title "The address isn't valid">
    <!ENTITY malformedURI.longDesc "
    <ul>
      <li>Web addresses are usually written like
        <strong>http://www.example.com/</strong></li>
      <li>Make sure that you're using forward slashes (i.e.
        <strong>/</strong>).</li>
    </ul>
    ">
    <!ENTITY netInterrupt.title "The connection was interrupted">
    <!ENTITY netInterrupt.longDesc "&sharedLongDesc;">
    <!ENTITY netOffline.title "Offline mode">
    <!ENTITY netOffline.longDesc "
    <ul>
      <li>Uncheck "Work Offline" in the File menu, then try again.</li>
    </ul>
    ">
    <!ENTITY netReset.title "The connection was reset">
    <!ENTITY netReset.longDesc "&sharedLongDesc;">
    <!ENTITY netTimeout.title "The connection has timed out">
    <!ENTITY netTimeout.longDesc "&sharedLongDesc;">
    <!ENTITY protocolNotFound.title "The address wasn't understood">
    <!ENTITY protocolNotFound.longDesc "
    <ul>
      <li>You might need to install other software to open this address.</li>
    </ul>
    ">
    <!ENTITY proxyConnectFailure.title "The proxy server is refusing connections">
    <!ENTITY proxyConnectFailure.longDesc "
    <ul>
      <li>Check the proxy settings to make sure that they are correct.</li>
      <li>Contact your network administrator to make sure the proxy server is
        working.</li>
    </ul>
    ">
    <!ENTITY proxyResolveFailure.title "Unable to find the proxy server">
    <!ENTITY proxyResolveFailure.longDesc "
    <ul>
      <li>Check the proxy settings to make sure that they are correct.</li>
      <li>Check to make sure your computer has a working network connection.</li>
      <li>If your computer or network is protected by a firewall or proxy, make sure
        that &brandShortName; is permitted to access the Web.</li>
    </ul>
    ">
    <!ENTITY redirectLoop.title "The page isn't redirecting properly">
    <!ENTITY redirectLoop.longDesc "
    <ul>
      <li>This problem can sometimes be caused by disabling or refusing to accept
        cookies.</li>
    </ul>
    ">
    <!ENTITY unknownSocketType.title "Unexpected response from server">
    <!ENTITY unknownSocketType.longDesc "
    <ul>
      <li>Check to make sure your system has the Personal Security Manager
        installed.</li>
      <li>This might be due to a non-standard configuration on the server.</li>
    </ul>
    ">
    <!ENTITY sharedLongDesc "
    <ul>
      <li>The site could be temporarily unavailable or too busy. Try again in a few
        moments.</li>
      <li>If you are unable to load any pages, check your computer's network
        connection.</li>
      <li>If your computer or network is protected by a firewall or proxy, make sure
        that &brandShortName; is permitted to access the Web.</li>
    </ul>
    ">
      <!ENTITY % globalDTD
        SYSTEM "chrome://global/locale/global.dtd">
      %globalDTD;
    ]>
    <!-- ***** BEGIN LICENSE BLOCK *****
       - Version: MPL 1.1/GPL 2.0/LGPL 2.1
       - The contents of this file are subject to the Mozilla Public License Version
       - 1.1 (the "License"); you may not use this file except in compliance with
       - the License. You may obtain a copy of the License at
       - http://www.mozilla.org/MPL/
       - Software distributed under the License is distributed on an "AS IS" basis,
       - WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
       - for the specific language governing rights and limitations under the
       - License.
       - The Original Code is mozilla.org code.
       - The Initial Developer of the Original Code is
       - Netscape Communications Corporation.
       - Portions created by the Initial Developer are Copyright (C) 1998
       - the Initial Developer. All Rights Reserved.
       - Contributor(s):
       -   Adam Lock <[email protected]>
       -   William R. Price <[email protected]>
       -   Henrik Skupin <[email protected]>
       -   Jeff Walden <[email protected]>
       - Alternatively, the contents of this file may be used under the terms of
       - either the GNU General Public License Version 2 or later (the "GPL"), or
       - the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
       - in which case the provisions of the GPL or the LGPL are applicable instead
       - of those above. If you wish to allow use of your version of this file only
       - under the terms of either the GPL or the LGPL, and not to allow others to
       - use your version of this file under the terms of the MPL, indicate your
       - decision by deleting the provisions above and replace them with the notice
       - and other provisions required by the LGPL or the GPL. If you do not delete
       - the provisions above, a recipient may use your version of this file under
       - the terms of any one of the MPL, the GPL or the LGPL.
       - ***** END LICENSE BLOCK ***** -->
    <html xmlns="http://www.w3.org/1999/xhtml">
      <head>
        <title>Problem loading page</title>
        <link rel="stylesheet" href="temp2_files/netError.css" type="text/css" media="all"/>
        <!-- XXX this needs to be themeable -->
        <link rel="icon" type="image/png" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAANbY1E9YMgAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAICSURBVHjaYvz//z8DJQAggJhwiDPvnmlzc2aR0O+JGezt+AwACCCsBhxfYhn59N41FWtXIxZOLu70niRGXVwGAAQQNgNYHj96O8HaWYdJW5ubwd4/mI2Ng7sblwEAAYRhwMm1URk/vn4SUNWVYGD8+YZBXZOZm5OLzRjoCmNsBgAEEKoBN82Y7l851GLrqMjM8Oc7A8O/3wwMP54wuAQFCXNycUzGZgBAAKEYcOaKZO2/f//5FbUVgBrfMoRVcgHpNwyKGjKMXDwCan0prFboBgAEELIBzDcvXyy2cVZhYPj9GWj7H4jo/38MDJ9OMDj7O/KzsjH3oxsAEEBwA/bNNipiZf7FI6cqwcDw8x2qqp8fGORUpVn4BEXlgGHhhCwFEEAwA9gfP3hdZ+Oizcjw+wvCdjgAuuLrFQbXIH9hTm7uqcgyAAEENuD4ctcebm5mbikFYRTbV7V/Q6j88Z5BSuY7q4CQgAjQFR4wYYAAAhtw89L5ZFsnRaDtn4CW/YXrAQcisit+PGVwDgrnZ2NnnwATBQggpsNLvGYLCAmxi8tLARWg+h3FBVBXSEj/ZZWQkRcCuiIQJAQQQCyvnj5KMDTkZ2JgYmRg4FchnHv+vmEwttLmeXT3VjKQtx4ggFgk5TXebV63UfT3ijOMxOZAVlZWdiB1EMQGCCBGSrMzQIABAFR3kRM3KggZAAAAAElFTkSuQmCC"/>
        <script type="application/x-javascript"><![CDATA[
          // Error url MUST be formatted like this:
          //   moz-neterror:page?e=error&u=url&d=desc
          // Note that this file uses document.documentURI to get
          // the URL (with the format from above). This is because
          // document.location.href gets the current URI off the docshell,
          // which is the URL displayed in the location bar, i.e.
          // the URI that the user attempted to load.
          function getErrorCode()
            var url = document.documentURI;
            var error = url.search(/e\=/);
            var duffUrl = url.search(/\&u\=/);
            return decodeURIComponent(url.slice(error + 2, duffUrl));
          function getDescription()
            var url = document.documentURI;
            var desc = url.search(/d\=/);
            // desc == -1 if not found; if so, return an empty string
            // instead of what would turn out to be portions of the URI
            if (desc == -1) return "";
            return decodeURIComponent(url.slice(desc + 2));
          function retryThis()
            // Session history has the URL of the page that failed
            // to load, not the one of the error page. So, just call
            // reload(), which will also repost POST data correctly.
            try {
              location.reload();
            } catch (e) {
              // We probably tried to reload a URI that caused an exception to
              // occur;  e.g. a non-existent file.
          function initPage()
            var err = getErrorCode();
            // if it's an unknown error or there's no title or description
            // defined, get the generic message
            var errTitle = document.getElementById("et_" + err);
            var errDesc  = document.getElementById("ed_" + err);
            if (!errTitle || !errDesc)
              errTitle = document.getElementById("et_generic");
              errDesc  = document.getElementById("ed_generic");
            var title = document.getElementById("errorTitleText");
            if (title)
              title.parentNode.replaceChild(errTitle, title);
              // change id to the replaced child's id so styling works
              errTitle.id = "errorTitleText";
            var sd = document.getElementById("errorShortDescText");
            if (sd)
              sd.textContent = getDescription();
            var ld = document.getElementById("errorLongDesc");
            if (ld)
              ld.parentNode.replaceChild(errDesc, ld);
              // change id to the replaced child's id so styling works
              errDesc.id = "errorLongDesc";
            // remove undisplayed errors to avoid bug 39098
            var errContainer = document.getElementById("errorContainer");
            errContainer.parentNode.removeChild(errContainer);
        ]]></script>
      </head>
      <body dir="ltr">
        <!-- ERROR ITEM CONTAINER (removed during loading to avoid bug 39098) -->
        <!-- PAGE CONTAINER (for styling purposes only) -->
        <div id="errorPageContainer">
          <!-- Error Title -->
          <div id="errorTitle">
            <h1 id="errorTitleText">The connection was reset</h1>
          </div>
          <!-- LONG CONTENT (the section most likely to require scrolling) -->
          <div id="errorLongContent">
            <!-- Short Description -->
            <div id="errorShortDesc">
              <p id="errorShortDescText">The connection to the server was reset while the page was loading.</p>
            </div>
            <!-- Long Description (Note: See netError.dtd for used XHTML tags) -->
            <div id="errorLongDesc">
    <ul>
      <li>The site could be temporarily unavailable or too busy. Try again in a few
        moments.</li>
      <li>If you are unable to load any pages, check your computer's network
        connection.</li>
      <li>If your computer or network is protected by a firewall or proxy, make sure
        that Firefox is permitted to access the Web.</li>
    </ul>
    </div>
          </div>
          <!-- Retry Button -->
          <xul:button xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" id="errorTryAgain" label="Try Again" oncommand="retryThis();"/>
        </div>
        <!--
        - Note: It is important to run the script this way, instead of using
        - an onload handler. This is because error pages are loaded as
        - LOAD_BACKGROUND, which means that onload handlers will not be executed.
        -->
        <script type="application/x-javascript">initPage();</script>
      </body>
    </html>thank you for your prompt reply in advance,
    Regards,
    Mihir Pandya

    Hi, thank you for your replies, I found out few things about my servlet, and its portability
    and i have few questions, although i marked this topic as answered i guess its ok to post
    I am using javax.servlet.context.tempdir to store my files in that servletcontext temporary directory. But i dont know how to give hyperlink
    of the modified files to the user for them to download the modified files.
    What i am using to get the tempdir i will paste
    File baseurl = (File)this.getServletContext().getAttribute("javax.servlet.context.tempdir");
    System.out.println(baseurl);
    baseurl = new File(baseurl.getAbsolutePath()+File.separator+"temp"+File.separator+"files");
    baseurl.mkdirs();so i am storing my files in that temp/files folder and the servlet processes them and modifies them, then how to present them as
    links to the user for download ?
    and as the servlet is multithreaded by nature, if my servlet gets 2 different requests with same file names, i guess one of them will be overwritten
    And i want to create unique directory for each request made to the servlet , so file names dont clash.
    one another thing is that i want my servlet to be executed by my <form action> only, I dont want the user to simply type url and trigger the servlet
    Reply A.S.A.P. please..
    Thanks and regards,
    Mihir Pandya

  • How do I get context path in javascript?

    Hi,
    I code the following code but the contextPath will return a string = <%=request.getContextPath()%> instead of returning the context path. The codes works on a normal jsp form. Please help. Thanks.
    <script>
    <contents>
    var contextPath = "<![CDATA[<%=request.getContextPath()%>]]>";
    function doAction( action ){
    if( action == "clear" ){
    document.GnCodeSetupForm.action= "clearGnCodeSetupAction.do";
    document.GnCodeSetupForm.submit();
    </contents>
    </script>

    var contextPath = "<![CDATA["+<%=request.getContextPath()%>+"]]>";
    will return following code
    var contextPath = ""+<%=request.getContextPath()%>+"";
    which is syntax error.

  • Run servlet from form action tag

    This is my first post to this forum, thanks in advance for any and all help!
    I'm utilizing Tomcat 4.0.1. I've got the following form tag within my JSP:
    <form name="orderForm" method="GET" action="/myAppName/myServletName">
    I've made the context entry for myAppName within ..tomcat/conf/server.xml.
    I've got a properly formatted ..tomcat/webapps/myAppName/web-inf/web.xml
    When submitting the form, Tomcat immediately reports that the resource (myServletName) is unavailable.
    I've download the bookstore sample app from Sun; it is working properly.
    Any idea what I'm missing here?
    The bookstore app calls the servlet from a hyperlink rather that a form action. Do JSP's treat forms differently when calling servlets?
    Thanks again for any assistance.
    Bruce

    Yes, my .class files in in Tomcathome/webapps/appname/web-inf/classes
    If I try and call the servlet from the Address box of the browser, I get the same error listed above.
    Here is the contents of my Tomcathome/webapps/appname/web-inf/web.xml:
    <-- entry begins here
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
    "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
    <web-app>
         <servlet>
              <servlet-name>myServletName</servlet-name>
              <servlet-class>myServletName</servlet-class>
         </servlet>
         <servlet-mapping>
              <servlet-name>myServletName</servlet-name>
              <url-pattern>/myServletName</url-pattern>
         </servlet-mapping>
    </web-app>
    < -- entry ends here
    Here is the entry I've made in Tomcathome/conf/server.xml:
    <--entry begins here
    <Context path="/appName" docBase="appName" debug="0" reloadable="true" />
    <--entry ends here
    The only Tomcat related entry in my classpath is:
    d:\jakarta-tomcat-4.0.1\common\lib\servlet.jar;
    Again, thanks for all your assistance...this is driving me nuts (granted, it wasn't a long trip!)
    Bruce

  • After changing the context path, felix console, I can not checkout content via vlt.

    Hi everyone,
    I have the following issue. After changing the context path, via felix console, I can not checkout the content via vlt. Before that, I could checkout without any problems.
    I am using CQ5.5, CRX2.3, context path: /Test
    That is what I am trying:
    vlt -v --credentials admin:admin co http://localhost:23310/Test/server/crx.default
    Connecting via JCR remoting to http://localhost:23310/Test/server
    [WARN ] Authentication required to access repository descriptors
    [ERROR] checkout: com.day.jcr.vault.vlt.VltException: Unable to mount filesystem
    caused by: javax.jcr.ItemNotFoundException: Not Found
    caused by: org.apache.jackrabbit.webdav.DavException: Not Found
    Other versions I tried:
    vlt -v --credentials admin:admin co http://localhost:23310/crx
    vlt --credentials admin:admin co http://localhost:23310/Test/server
    vlt --credentials admin:admin co http://localhost:23310/Test
    vlt --credentials admin:admin co http://localhost:23310/Test/crx
    To verify if I could connect to the instance properly I started CRXDE
    and try to connect to "http://localhost:23310/Test"
    After click the ok button I got that error:
    No file system is defined for scheme: jcr
    Part of the .log file (.crxde):
    eclipse.buildId=unknown
    java.version=1.6.0_37
    java.vendor=Apple Inc.
    BootLoader constants: OS=macosx, ARCH=x86_64, WS=cocoa, NL=de_DE
    Framework arguments:  -keyring /Users/peterwimsey/.eclipse_keyring -showlocation
    Command-line arguments:  -os macosx -ws cocoa -arch x86_64 -keyring /Users/peterwimsey/.eclipse_keyr
    ing -showlocation
    !ENTRY org.eclipse.core.resources 2 10035 2012-11-25 19:01:19.268
    !MESSAGE The workspace exited with unsaved changes in the previous session; refreshing workspace to
    recover changes.
    !ENTRY org.eclipse.osgi 4 0 2012-11-25 19:04:14.363
    !MESSAGE Application error
    !STACK 1
    java.lang.reflect.InvocationTargetException
            at org.eclipse.ui.actions.WorkspaceModifyOperation.run(WorkspaceModifyOperation.java:121)
            at com.day.cq.ide.CQDEApplication.start(CQDEApplication.java:62)
            at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194)
            at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLau
    ncher.java:110)
            at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.jav
    a:79)
            at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:368)
            at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
            at java.lang.reflect.Method.invoke(Method.java:597)
            at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559)
            at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514)
            at org.eclipse.equinox.launcher.Main.run(Main.java:1311)
    Caused by: org.eclipse.core.runtime.CoreException: No file system is defined for scheme: jcr
            at org.eclipse.core.internal.filesystem.Policy.error(Policy.java:55)
            at org.eclipse.core.internal.filesystem.Policy.error(Policy.java:50)
            at org.eclipse.core.internal.filesystem.InternalFileSystemCore.getFileSystem(InternalFileSys temCore.java:65)
            at org.eclipse.core.internal.filesystem.InternalFileSystemCore.getStore(InternalFileSystemCo re.java:107)
            at org.eclipse.core.filesystem.EFS.getStore(EFS.java:350)
            at com.day.cq.ide.fs.JCRFileSystemPlugin.registerExtensions(JCRFileSystemPlugin.java:100)
            at com.day.cq.ide.init.SetupWorkspaceOperation.initWorkspace(SetupWorkspaceOperation.java:16 6)
    Any tips or hints are welcome.
    In the case you need more information, just leave a note.
    Thanks in advance for your help.
    Best regards,
    Peter

    The VLT works fine with the above URL change but How to fix "CRXDE" Initialization error if a context path is defined?
    I have a context path defined /Test and when I am trying to login to CRXDE with URL as http://localhost:4502/Test, I am getting below Initialization Error.
    Any workaround as Which URL should work while logging to repository (with context path) using CRXDE 1.0.1
    eclipse.buildId=unknown java.version=1.6.0_06 java.vendor=Sun Microsystems Inc. BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_US Command-line arguments:  -os win32 -ws win32 -arch x86 !ENTRY org.eclipse.osgi 4 0 2013-04-25 17:50:23.802 !MESSAGE Application error !STACK 1 java.lang.reflect.InvocationTargetException at org.eclipse.ui.actions.WorkspaceModifyOperation.run(WorkspaceModifyOperation.java:121) at com.day.cq.ide.CQDEApplication.start(CQDEApplication.java:62) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLau ncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.jav a:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:368) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514) at org.eclipse.equinox.launcher.Main.run(Main.java:1311)
    Caused by: org.eclipse.core.runtime.CoreException: No file system is defined for scheme: jcr
    at org.eclipse.core.internal.filesystem.Policy.error(Policy.java:55) at org.eclipse.core.internal.filesystem.Policy.error(Policy.java:50) at org.eclipse.core.internal.filesystem.InternalFileSystemCore.getFileSystem(InternalFileSys temCore.java:65) at org.eclipse.core.internal.filesystem.InternalFileSystemCore.getStore(InternalFileSystemCo re.java:107) at org.eclipse.core.filesystem.EFS.getStore(EFS.java:350) at com.day.cq.ide.fs.JCRFileSystemPlugin.registerExtensions(JCRFileSystemPlugin.java:100) at com.day.cq.ide.init.SetupWorkspaceOperation.initWorkspace(SetupWorkspaceOperation.java:16 6) at com.day.cq.ide.init.SetupWorkspaceOperation.execute(SetupWorkspaceOperation.java:119) at org.eclipse.ui.actions.WorkspaceModifyOperation$1.run(WorkspaceModifyOperation.java:106) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1800) at org.eclipse.ui.actions.WorkspaceModifyOperation.run(WorkspaceModifyOperation.java:118) ... 13 more Root exception:
    Thanks.

  • Htmlb form action

    Hi,
    I have a question about the "action" attribute of the htmlb form object.  Is it a relative or absolute path that the action attribute expects? 
      <hbj:form action="nextjsp.jsp">
      or
      <hbj:form action="pagelet.jsp">
    I've tried the JSPDynPage example from the PDK, and the switch statements don't work on my button click.  I'm wondering how I can send my request to the correct JSP.  Thanks!
    -Vu

    Hi Vu,
    In this case you are using relative paths. An absolute path would look like:
    ... action="/nextjsp.jsp">
    Please note this is the root of the webserver (your portal instance).
    There are other tricks you can use like:
    ... action="../nextjsp.jsp">
    (relative, one directory below current one)
    Hope this helps.
    Noel

  • How to hide specific form actions

    We have a requirement from our authors to remove unwanted form actions. I assumed that this would be permission specific and went into the content-author group and removed read ability for those actions from under /libs/foundation/form/components/form/actions/
    And yet they still appear.
    Is there another location that I shouldbe setting the permissions or do these just show up regardless?

    Hi,
    It should works like you wrote by set proper permissions for a group of users, but I just chekced in my local repository and it is working like in your case.
    If you want check from where are taken form actions values in the dropdown first of all you need to check configuration for this field which is stored under:
    - /libs/foundation/components/form/start/dialog/items/tabs/items/second/items/actiontype
    As this is a widget with xtype='formactionselection' then please take a look into js file which is implementation for this widget:
    - /libs/cq/ui/widgets/source/widgets/wcm/FormActionSelection.js
    There you find that the values in the dropdown for this filed are populated by calling :
    - /bin/wcm/foundation/forms/actions.json
    and of course setting permissions should solve this problem.
    In my opinion this a bug or I missed something, so only thing which I can suggest at this moment is to customize a little bit this widget.
    For example you can create a sort of actions which are used only by users in the /apps/project_name/form/actions (copy only those which are used from /libs/foundation/form/components/form/actions/) and then customize the widget by changing a path from
    /bin/wcm/foundation/forms/actions.json to /apps/project_name/form/actions.json
    I hope this helps you somehow to understand this issue more deeply.
    Regards,
    kasq

  • Form Actions

    Hi Everyone,
    Sorry about this post - I am a bit of a novice helping someone out with some problems they are having with a new website.
    I am not very familiar with the use of forms and actions, and I am trying to set up a page with a login section which will not be in use immediately. Therefore, just incase anyone tries to login, I want an error page to appear after they hit the login button.
    Can someone help me with how to do this please?
    Thanks a million for your help (in advance)
    Steph

    Typically, the form action is a url to a page with a server side script that processes the form contents. If you simply want an error page to display for now, just create the error page and use that (including the entire path) in the form action.

  • Disable Warning on FORM Action tag?

    The following HTML is triggering warnings in my test project in Workshop:
    <FORM action="/supportApp/supportDispatcher" method="POST">
    Here's the warning message..."The file "/supportApp/supportDispatcher" cannot be found."
    In this case, the warning is not-applicable because "supportDispatcher" is mapped to a Servlet in my web.xml deployment descriptors. So its a valid HTML Form action target.
    How can I disable this warning in BEA Workshop (BEA Workshop JSP Editor 3.0)

    Can you verify the following settings?
    - Have you configured the context-root "supportApp" in Workshop?
    Project > Properties > Workshop Web Application > Folders - Context Root
    - Does the mapping "supportDispatcher" within url-pattern start with "/"
    <servlet-mapping>
              <servlet-name>YOURSERVLETNAME</servlet-name>
              <url-pattern>/supportDispatcher</url-pattern>
         </servlet-mapping>
    - By correcting these configuration the warning should disappear
    If you still get the warning in the JSP page, then exercise a simple "Edit-Save" step
    If the issue is persistent, please send the following files to [email protected]
    - web.xml
    - the JSP page
    - .m7project file from project folder
    Message was edited by:
    ram.v

  • While trying to open an infopath form in info path designer 2013 in SP 2013 online, getting error

    Hi,
       We have SP 2013 online and infopath designer 2013. When trying to open any info path form using info path designer it is giving 2 error messages.
    1st message is http://xyz.com/TestList/Item/template.xsn could
    not be opened."  After clicking "ok" to it, giving the 2nd message.
    2nd message is " infopath cannot generate a form template for the sharepoint list.
    InfoPath can not open the form. 
    For this command is not enough memory available"
    Though I have sufficient memory left.
    Please assist.

    Any suggestion would be appreciated.

  • Unable to get the "Submit a form" action working with Webmail: Gmail

    I am attempting to create interactive PDF forms for the website which the end user will email back once filled out.
    I have added a link to the form that runs the "Submit a form" action, this appears to work if you have a mail client installed, but if you specify Webmail "Gmail", the system appears to start the process with:
    First asking you for the email account details to add
    You are then asked to allow Adobe Acrobat permissions to your access your email account
    It then attempts to create a draft message but fails with:  "Error while creating message ..."
    NB: I have logged into my Gmail account on the client PC and I am able to send emails.
    Any ideas if this has a known problem and if a fix is available, without a fix it makes interactive PDF's a bit pointless?
    Message was edited by: Neil Newman

    Hi Aniket,
    To the Clusters .. do you mean at the j2ee engine side?can you please give me info in detail
    Thnx for valuable inputs
    Vijay
    Message was edited by:
            NR

  • Table error - Context Path Cannot Be Resolved (Last Node Is Empty)

    Hi All,
    I am dynamically building up a context node called PoList which is used to hold the contents of a table.
    My BAPI is called and a routine transfers the contents of the BAPI context node across into the POList context node. This is rendered correctly on the screen. There is a routine which filters the results based on a vendor. The code works fine when some records are found but when no records are found, I get the error "Context Path POLIST.EBELN Cannot Be Resolved (Last Node Is Empty) ".
    The cardinality of the PoList node is 0..N. This should mean that 0 records is valid.
    The ABAP which fills the context is pasted below :
    data:
        Node_Z_Bapi_Po_Combined             type ref to If_Wd_Context_Node,
        Node_Changing_Po                    type ref to If_Wd_Context_Node,
        Node_T_Header                       type ref to If_Wd_Context_Node,
        Elem_T_Header                       type ref to If_Wd_Context_Element,
        itab_C_T_Header    type If_Componentcontroller=>Elements_Polist,
       stru_C_T_Header    like line of itab_C_T_Header,
        Stru_T_Header                       type If_Componentcontroller=>Element_T_Header .
      data:
        Node_Polist                         type ref to If_Wd_Context_Node,
        Elem_Polist                         type ref to If_Wd_Context_Element,
        Stru_Polist                         type If_Componentcontroller=>Element_Polist.
      data:
    lri_Element    type ref to if_Wd_Context_Element,
    loa_Elements   type Wdr_Context_Element_Set.
    navigate from <CONTEXT> to <Z_BAPI_PO_COMBINED> via lead selection
      Node_Z_Bapi_Po_Combined = wd_Context->get_Child_Node( Name = IF_COMPONENTCONTROLLER=>wdctx_Z_Bapi_Po_Combined ).
    navigate from <Z_BAPI_PO_COMBINED> to <CHANGING_PO> via lead selection
      Node_Changing_Po = Node_Z_Bapi_Po_Combined->get_Child_Node( Name = IF_COMPONENTCONTROLLER=>wdctx_Changing_Po ).
    navigate from <CHANGING_PO> to <T_HEADER> via lead selection
      Node_T_Header = Node_Changing_Po->get_Child_Node( Name = IF_COMPONENTCONTROLLER=>wdctx_T_Header ).
    navigate from <CONTEXT> to <POLIST> via lead selection
      Node_Polist = wd_Context->get_Child_Node( Name = IF_COMPONENTCONTROLLER=>wdctx_Polist ).
      loa_Elements = node_T_Header->get_Elements( ).
      loop at loa_Elements[] into lri_Element.
        lri_Element->get_Static_Attributes(
          importing Static_Attributes = stru_C_T_Header ).
    Get the vendor number
        if i_lifnr is initial.
          insert  stru_C_T_Header into table itab_C_T_Header[].
        elseif i_lifnr = stru_c_t_header-lifnr.
          insert stru_C_T_Header into table itab_C_T_Header[].
        endif.
      endloop.
      data : W_LINES TYPE I.
      describe table itab_c_t_header lines w_lines.
      if w_lines eq 0.
        node_Polist->set_lead_selection_index( 0 ).
        CALL METHOD NODE_POLIST->INVALIDATE.
      else.
        node_Polist->bind_Table( itab_C_T_Header ).
        clear itab_C_T_Header[].
      endif.
    I would have though that invalidating the node would blank the context node and mean that the table is empty but instead I get an error.
    Please help.
    Richard

    Hi Richard,
    The problem here is that some UI element tries to bind against a node where the parent node is empty. You have to make sure that the last but one node has at least 1 element, otherwise you should hide the UI element (visibility = NONE).
    If the lead selection were empty, the corresponding error message would tell you this, but it explicitely says: "Last Node is Empty", and you can trust it.
    One possibility to have at least one element in the node is to change the cardinality to 1..n. If you have a supply function for this node, you have to make sure that there is at least 1 element (bind empty structure to the node), otherwise the framework creates the first element for you.
    Ciao, Regina

  • Finding the context path or docBase in a backing bean - Howto

    How should I go about finding the context path or docBase in a backing bean?
    Is there anyway to get this from glassfish or jsf? GlassFish proudly displayed it on the Application Server > Applications > Web Applications > page. It puts it there with an EL for example:
    ${com.sun.aas.instanceRoot}/applications/j2ee-modules/jsf-witaCan and/or should I try to use it in a backing bean? i.e. can I rely on it to stay defined?
    Or should I make a property which I can set for my backing work?

    Is this what you want?
    FacesContext.getCurrentInstance().getExternalContext().getContext()

  • Getting the context path in a jspx

    Greetings
    i have in a JSP this code
    <div id="footerpartners"><img src="<%=request.getContextPath()%>/images/aval.png" width="68" height="26" /><img src="<%=request.getContextPath()%>/images/ath.png" width="79" height="26" /><img src="<%=request.getContextPath()%>/images/ciudad_empresarial.png" width="133" height="26" /><img src="<%=request.getContextPath()%>/images/corficolombiana.png" width="140" height="26" /><img src="<%=request.getContextPath()%>/images/superfinanciera.png" width="181" height="26" /><img src="<%=request.getContextPath()%>/images/verisign.png" width="72" height="26" /></div>
    and this JSP is being include in a JSPX, when loading the JSPX in my browser i am getting this error
    Error de OracleJSP: oracle.jsp.parse.JavaCodeException:Line 3, oracle.jsp.parse.JspParseTagExpression@190fd9b
    Error: Java code in jsp source files is not allowed in ojsp.next mod
    i believe it is because of the contextPath request....................how can i get it in a jspx

    resolved at Getting context path in a jspx

  • How to send query string by using form action

    Hai to all,
    I am new to this topic Ihave one doubt about jsp form action....
    That is I am using input type is submit button
    <input type="submit" name="submit" value="Edit" onclick="indows.location.href=+sample.jsp?query=+editvalue+editname">
    If I get that queryString in the sample.jsp page it respoce to the null only...... what is the problem to this code ..... please send ur perfect coding as soon as possible. I really waiting for ur replay..........

    Hai,
    I think u can use the "request.getQueryString()" to get the query string instead of using "request.getParameter()".
    From the query string value u can get the output.
    cheers,
    Redrose

Maybe you are looking for

  • External hard-drive disappeared after dragging into Spotlight

    Dear users, My external hard-drive under devices  disappeared after I dragged it into Spotlight to reindex it to make it searchable. There was a cloud puff animation when i dragged it from the devices icon on the left of folders to the spotlight priv

  • Cannot open Reader

    I've tried to download both the XI and the 9.5 versions of Reader and I continually get an error message; "Adobe Reader has encountered a problem and needs to close", when I try to open the program. I have Windows XP - SP3 on my computer and I cannot

  • Restoring from Lion Time Machine backup and keeping Lion recovery partition

    I am installing a new hard drive in my MacBook Pro. I have a Time Machine backup of everything, but I'm aware that just restoring the Time Machine backup to the new drive will not restore the Lion recovery drive/partition. What is the best way to mov

  • .MTS Audio Files help needed

    I'm having a little trouble with editing. The footage I am editing are .MTS files. Both the audio and video. The video is playing fine (well, as best it can for my rubbish uni computers) but I am having trouble hearing the audio - and I'm getting lot

  • How to handle empty value coming to PI

    Hi Experts, My scenario is ABAP proxy to File. ABAP program is sending data to PI with blank value. But in PI payload that field is not showing at all. Suppose customer number value is blank in ABAP internal table, in PI payload customer number xml t