Simplification of a complex jsp page

Hallo everybody,
I'd like to discuss the following issue here:
There is a huge jsp-file, with many struts logic tags, such that there is some business logic on presentation tier. This one jsp contains a large set of UI controls, which are used differently for a wide range of presentation cases: there are many conditions like [if we have the case 1, then this field is read-only; else if we have the case 2, then this and that fields are read-only] or [if we have not the case 3, then show this control, in the case 3 not] and so on.
Any changes in such jsp are impossible, because it will take a month from anyone to understand where should he put a new stuff. I have to simplify this jsp-page. My idea: to separate all possible presentation cases in such a way, that there is a Struts Action and a corresponding separate jsp page for each case (or one Action for a small group of tightly related cases with separate page for each case). An Action contains a business logic, such that there are (almost) no struts logic tags on a jsp page, which defines rather strict appearance of UI controls. Some controls will be duplicated on different pages for different cases (e.g. each page will have the text field "Description"), but it will be clear, how does it all work in any particular case.
Is it correct, what I propose, or may be there is some kind of a pattern, how to refactor in such situation?
Thanks in advance for your comments!
Andrew

Can you not use jsp includes to split the page down into a number of smaller ones, each focussing on a different task, or create a tag library?
Then you would only need to look at the file / tag that fulfilled the function you wanted to edit.

Similar Messages

  • Complex Query JSP page

    I have a JSP page where I want to display the results from a query with a parameter supplied by a form.
    The problem is, my query does not have a where clause but instead is a hierarchical query e.g.
    http://www.dbazine.com/mishra3.shtml
    SELECT LEVEL, EMP_NAME , EMP_ID, MGR_ID
    FROM EMPLOYEE
    START WITH MGR_ID IS :1
    CONNECT BY PRIOR EMP_ID = MGR_ID;
    Where :1 is where I want to put in a parameter.
    Can I do this using an ADF ViewObject and JSP page?
    I am open to design suggestions here.
    I have tried two naive ways of doing this which did not work.
    1. Just try to set the parameters before opening the page using a DataActionMethod that opens the page on success
    ViewObject vo = findViewObject("TrayTrackFwdHistory1");
    vo.setWhereClauseParam(0, my_parameter);
    vo.executeQuery();
    In this case, somehow the page errors out before the set method is invoked with a ":1 is not set as an input or output parameter"
    2. Simply drop and recreate the view object with the query parameter value inside it. e.g.
    ViewObject vo = findViewObject("TrayTrackRevHistory1");
    vo.remove();
    vo = createViewObjectFromQueryStmt("TrayTrackRevHistory1", sqlStr);
    vo.executeQuery();
    In this case I get the error
    Operation getCurrentRowSlot cannot be performed because the working set object is not bound. So somehow I have to reset the iterator binding for the JSP page I generated versus the above view?
    Any help much appreciated.

    So, I figured out the solution for this.
    The answer here was to set the parameter value in the prepareModel event before the page is loaded. It turns out that setWhereClauseParam seems to set a parameter even if it is not part of a where clause so e.g.
    protected void prepareModel(DataActionContext ctx) throws Exception {
    String manager= ctx.getHttpServletRequest().getParameter("manager");
    DCDataControl dc = ctx.getBindingContext().findDataControl("AppModuleDataControl");
    AppModule am = (AppModule)dc.getDataProvider();
    ViewObject vo = am.findViewObject("EmployeeManagers");
    vo.setWhereClauseParam(0, manager);
    vo.executeQuery();
    super.prepareModel(ctx);
    }

  • Problem with onload in jsp page

    Hi all,
    I had two jsp pages, a search and a results page. I need to enter some search criteria in the first page and based on that criteria i will be getting the results in the results jsp. Now, when i click the back button in the results page, i need to go to the search page and the values which i entered in the search page needs to be present there. But the problem is i had a javascript function which runs on loading of the search page. This function will set all the values in this search page to empty whenever we go to the search page. I am calling this javascript function as follows in my search jsp page.
    <body onload="setdefaultvalues('<%=name%>');">
    I am having the code for the back button in the results page as follows.
    <INPUT TYPE="button" VALUE='Back' onClick="javascript:history.go(-1);resetvalue(name);" class="button">
    The problem i am facing is whenever i go to the search page by clicking on the back button, the values in the search page are getting empty because of the onload method. There is no way that i can remove this onload method as i require it for setting the values in the search page evrytime i get to that from other modules as it is the main page for my module. So, is there anyway that i can stop this function from executing when i come from the results page or is there any other way that i can store the values in the search page when going from the results page.

    i think you really should have the result page include your search page contents rather than having the user need to click back as you'll end up with all sorts of nightmares in caching & session object management to be honest. if the search page is complex use javascript to hide contents and let the users expand them when they want to re-search.
    however, if you feel you must i would suggest the following:
    in your result page:
    session.setAttribute("userQuery","true"); (you probably actually want to put a container object with the query information in here)
    in your search page you could have something like:
    <body <% session.getAttribute("userQuery")==null { %>onload="setdefaultvalues('<%=name%>');"<% } %>>
    -or-
    <body onload="setdefaultvalues('<%=name%>',<%=session.getAttribute("userQuery")==null?"true":"false"%>);">
    function setdefaultvalues(name,run) { if ( !run ) return;....}
    you'll have to decide when to remove the object though cause once its set its there until the session expires or you remove it.
    hope that helps, good luck!

  • Help fowarding data to a jsp page

    I know your not meant to double post but i was told it would be better if i post this message in here so:
    I am trying to create a bean that will connect to a database and bring back data depending on what a user typed into a html form. However i need some help, if the database does not find any data i want to send a message saying something like "no results" to a jsp page which then be displayed, if results are found i then want to pass on these results to another jsp page.
    My question is how would i pass on this data / message to a jsp page? Also if more then one piece of data is returned from the database how would i be able to make sure everything is sent to the jsp?

    In the above code a Servlet, a JavaBean, JDBC and everything else is combined into just one class. That is not how it is.
    A Servlet is a Servlet --- it is not a JavaBean ---- So create a dedicated class that is purely a Servlet and does what a Servlet is supposed to do. Taking the tutorial on Servlets will help you understand them better.
    A JavaBean is a JavaBean ---- it is not a Servlet --- Create a JavaBean class.
    Move the Database Connection code to the Data Access Layer --- this means create separate classes that are meant to only access data.
    It is better to learn each individual concept before attempting something more complex.
    Also build small code into your class, ---- understand what it's doing then compile it frequently.
    I'll give you hints on how you should properly implement an MVC pattern.
    JSP Page
    This page contains an HTML form , with form fields and a submit button.
    In the action attribute of the form you will specify the URL-pattern for the Servlet.
    The URL-pattern for the servlet will be defined in web.xml , for example
    <form action="/MyFirstServlet" method="post" >
    </form>Then create a Servlet , in its package , so for example
    com.myapp.servlet.MyFirstServlet.java
    Place the servlet file in a proper folder structure in the Java source folder.
    When the Servlet it compiled it needs to go under the corresponding folder structure under your applications /WEB-INF/classes/ folder.
    Your servlet will look something like this:
    package com.myapp.servlet.MyFirstServlet;
    //All import statements go here
    public class MyFirstServlet extends HttpServlet{
       public void doGet(HttpServletRequest request, HttpServletResponse response) throws ......... exceptions {
            doPost(request, response);
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ......... exceptions {
            //Process the request here
    request.getAttribute("someFormField");
    //similarly get all form fields
    //Store all fields into a JavaBean
    //Then call a method that saves the data to database
    saveToDatabase(pass the javabean here);
    private void saveToDatabase(SomeJavaBean someJavaBean){
        //Over here call a DataAccessObject -- DAO that saves the data
       // to the database.
    /WEB-INF/web.xml
    When you write a servlet you need to define it in web.xml and define a URL mapping also for it in web.xml
    JavaBean example
    com.myapp.beans.Person.java
    package com.myapp.beans.Person;
    //whatever import statements (if any) go here
    public class Person{
    private int age;
    private String firstName;
    public Person(){} //Every JavaBean must have a default constructor
    //Write the Getters and Setters for the private fields above.
    //in proper JavaBeans notation as follows
    public void setAge(int age){
      this.age = age;
    public int getAge(){
       return this.age;
    //Similarly write getter and setter for firstName
    }You would then use the above JavaBean to transport data between the database layer and JSP layer via the Servlet.
    If you are Saving to the Database , you read the HTML form's data and save it into one JavaBean and then pass the JavaBean to the database layer to be saved. In the Database layer you write JDBC code to save the data.
    If you are Reading from the database, you create an ArrayList of JavaBean objects in the database layer using JDBC code and then pass the ArrayList to the Servlet which stores it in the Request, then the servlet forwards control to the JSP which then reads the data from the request.
    Most of the above is pseudo code, it is just there to give you an idea about how do this properly in MVC --- you can then read tutorials on each of the above --- for example tutorial on Servlet, tutorial on JDBC, tutorial on Java Classes and then understand them more.

  • Converting a class for use in a jsp page.

    I was just wondering if it is possible/normal to convert complex(ish) classes to change the output from the system.out, to a return value from a method that is displayed via a jsp page. (I am just beginning, and trying to make the coversion from asp with COM to jsp with beans/servlets and I am not yet fully understanding the technologies, and how you import classes etc - please bear with me!)
    first, I made a class that has a method that just returns a string. like:
         public String GetAValue()
              return "Hello there.";
         }and then I made a jsp page that imported the class (test) like:
    <%@ page import="Test" %>
    <jsp:useBean id="tst" scope="page" class="Test" />
    st = tst.GetAValue();
    out.println(st);
    Which to my delight, worked fine! Then I made another class that retrieved a value from a web service. kind of like...
         public String GetAValueFromAWebService(){
              return theWebService.GetValueFromWebServiceMethod();
         }This class also works good when I just run via "java testit". But when I went to do the same as above ,ie, import the class, do a usebean then do st=tst2.GetValueFromWebServiceMethod(), I could not get it to work at all. This class does lots more tricky stuff then the first one though - it loads its properties from a .properties file via an instance of another class, and imports funky stuff like - import org.uddi4j.* and import java.util.Vector; and more.
    Ok, now the question! Is what I am trying to do stupid? If so, how should I do it? If its not stupid, how do I include all the extra import statements on the jsp page (there are about 10)
    Wow, sorry about the length of this post. I hope someone can understand my ramblings!
    Thanks,
    nmoog.

    Sorry, yeah...
    I am actually using the UDDI4J package, and it loads various settings with the
    config = Configurator.load(); (a seperate class to load stuff in with)
    The Configurator.Load method basically just does:
    config.load(new java.io.FileInputStream("samples.prop"));
    and then does System.setProperty() with the config.getProperty()
    values.
    I have a test class when I do "java Test" it runs and in the Main method just instantiates the MyWebService class and does the MyWebService.GetAWebServiceValue() which returns a string.
    As I said, this runs fine. But from the JSP code if I do the same thing it gets a NullPointerException.
    "java.lang.NullPointerException
    at java.util.Hashtable.put(Hashtable.java:389)
    at java.util.Properties.setProperty(Properties.java:102)
    at java.lang.System.setProperty(System.java:654)
    at Configurator.load(Configurator.java:43)"
    Why can it load okie-dokey from the test class, but not the jsp page? Any ideas?

  • How can i load A gui JTable bean through jsp:useBean tag in a jsp page

    Hi,
    i am chiranjit , i am in a jsp project . i am desparately looking a solution for below stated problem:
    i want to make a jsp page for master entry , that why i want to load a GUI Java bean in my jsp page.This GUI Bean contaning a JTable in which allow grid type data entry in the jsp page. But i am unable load that bean in the jsp page through jsp:useBean tag in my page.So if you have any solution then send in the forum as early as possible.
    Thank you
    chiranjit

    No can do. JSPs can only output plain HTML (and javascript...) They are not used like normal Java classes.
    If you need a complex GUI then you might use an Applet instead. If you want to use a JSP then you are stuck using normal HTML components, like <table> <form...> <input type="text"> etc...

  • StackOverflowError - when trying to run a JSP Page in JDeveloper

    Hello all,
    I am experiencing an error when I try to run a .jspx page in JDeveloper (10.1.3.3). Below is the error I am getting. Any idea where I need to look to resolve this memory issue?
    {color:#ff0000}INFO: Unable to dispatch JSP Page : Exception:oracle.jsp.provider.JspCompileException: {color}
    {color:#ff0000}Errors compiling:E:\JDeveloper\jdevstudio10133\jdev\system\oracle.j2ee.10.1.3.41.57\embedded-oc4j\application-deployments\current-workspace-app\Veeva-ViewController-webapp\persistence\_pages\_mdssys\_viewcontroller\_public__html\_Tours_jspx.java{color}{noformat}*{color:#ff0000}Fatal error: Cannot find class java/lang/StackOverflowError
    Warning : Not able to reserve 2048M memory for the heap. Heap reduced to 944M
    {color}*
    {color:#000000}Thank you kindly,
    Christine{color}{noformat}

    I don't see any errors or warnings in the Structure. I am going through the Veeva Vacations example from the WebCenter Demos and Samples page (http://www.oracle.com/technology/products/webcenter/owcs_10132_demos.html). There is nothing complex about the page it just contains an ADF Read-only table based on a Database table. I was able to run it successfully and then another time I ran it I got that error. It seems to me as though it is a memory issue as opposed to a page error. I am just not sure where to look to allocate more memory.

  • Maintaining Transactions Across JSP Pages

    Hi,
    I have a multi page Registration (3 steps). On each step data submitted is taken
    to the database via an EJB component (Session Bean). How do I maintain a transaction
    across these JSP pages (i.e. either in the EJB or in the jsp) so that the data
    in the database is consistent? So if there is a problem in the 3rd step the data
    submitted in the first two steps should be rolled back.
    Can I use a statefull session beans, which will maintain a database connection
    created during the first step, so that I can use the same connection for steps
    2 & 3. In the first step after getting the database connection I will begin a
    transaction and insert the first part of the data, then this connection will be
    maintained by the statefull session and used for steps 2 & 3. At the end I will
    commit the transaction. Will this work?
    How do I maintain transaction across multiple pages? Is there is any standards
    for this scenario where the transaction is maintained across multiple pages. I
    cannot carry data across the jsp pages because of the complex data collected.
    Any help appreciated.
    Regards
    -MohanRaj

    You can not and should not do it the way that you are proposing. Keeping a transaction
    open across any interaction with the user is a big mistake. Transactions are scarce
    resources. They need to be short. You will need to collect the data from the three
    pages in the servlet itself. You can use the HTTPSession, or hidden fields in
    the forms. Only after all of the data is collected should you begin a transaction
    and update the database. Alternatively, you could store the partial data in a
    temporary database table, and move it to a permanent table when all of the data
    has been provided.

  • Generating Jsp Page On Runtime

    I have a problem regarding generating jsp page on the run time.according to the prefrence the user selects i have to generate a jsp page.suppose 25 feilds are there to be displayed for User A then these 25 feild will be equally divide in two column one column will contain 13 row and one colunm will have 12 rows.these values come from the database and according to that value i have to make the rows and column in the jsp page.the value can be different for different users.can anyone please let me know how this is done.if there is an code example please let me know.
    Regards
    Ved

    you don't need to generate the JSP, but simply generate the HTML according to the user settings (I don't know if this was clear or not, so I have made it explicit)
    Obviusly how to achieve this could be quite complex, but you can try to generate html table according to user preferences (#columns, #rows or try to find out these infos from #total elements)
    Sorry, I've no examples for yuo
    --=> Ivan

  • How to use single JSP page for multiple users.

    Hi ,
    I am doing messenger kind of program using JSP and tomcat server.
    When i type message it is showing in the some div. If some other person request for the same page by giving my IP address and jsp page, he should able to see what i have typed on page so far.
    how can i do that one . can any one guide me .
    Thanks in advance.

    SuneelGoodatJava wrote:
    Hi ,
    I am doing messenger kind of program using JSP and tomcat server.
    When i type message it is showing in the some div. If some other person request for the same page by giving my IP address and jsp page, he should able to see what i have typed on page so far.
    how can i do that one . can any one guide me .
    Thanks in advance.HTTP is a request/response protocol. You can't do what you're suggesting without "pushing" what you type to all the other users. That's not the way HTTP works. Maybe an applet and servlet.
    %

  • How to print new line in jsp page

    hi
    how to print new line in jsp page
    thanks

    \n - new line character is in java specific not HTML
    specific.Well, if the correct line separator sequence (by far not always \n) would be used, it does add a new line to the HTML output. Too bad that you don't want to see HTML but formatted text. The BR tag is a formatting element for the displayed text, not a line break in HTML. ;)

  • Error While opening a JSP page from inside form window

    Hi,
    I am using Oracle EBS 12.0.4 and using IE 7 as my browser.
    Now when i am trying to open a jsp page form EBS Home page (after login) it is opening perfectly.The problem occurs when i tried to open jsp pages from inside form window.
    E.g. From the home page when i tried to open a jsp page "Control Purchasing Periods" which is assigned in one of our custom responsibility(Manager Systems-->PO Super User-->Set up-->Financials-->Accounting-->Control Purchasing Periods) it opens a new log in page for the EBS. When i logged in it is showing
    Error
    You have insufficient privileges for the current operation. Please contact your System Administrator. Same is happening when i am trying to open User Page form user management responsibility from inside a form window.Where as it is opening fine from home page.
    Please help.

    Hi, hueesin
    in error log i got this 4 new lines while performing the transaction from my host
    [Thu Dec 30 13:27:39 2010] [error] [client 172.16.6.144] [ecid: 1293695859:172.16.48.61:25634:0:8748,0] Directory index forbidden by rule: /dev02/KMCTEST/apps/apps_st/comn/java/classes/
    [Thu Dec 30 13:27:40 2010] [error] [client 172.16.6.144] [ecid: 1293695860:172.16.48.61:25328:0:8829,0] Directory index forbidden by rule: /dev02/KMCTEST/apps/apps_st/comn/java/classes/
    [Thu Dec 30 13:28:06 2010] [error] [client 172.16.6.144] [ecid: 1293695886:172.16.48.61:25654:0:9225,0] File does not exist: /dev02/KMCTEST/apps/apps_st/comn/java/classes/oracle/forms/engine/RunformBundle_en_IN.class
    [Thu Dec 30 13:28:06 2010] [error] [client 172.16.6.144] [ecid: 1293695886:172.16.48.61:25654:0:9226,0] File does not exist: /dev02/KMCTEST/apps/apps_st/comn/java/classes/oracle/forms/engine/RunformBundle_en_IN.propertieswhile in access log i got
    172.16.6.144 - - [30/Dec/2010:13:32:51 +0530] "POST /OA_HTML/OA.jsp?page=/oracle/apps/fnd/sso/login/webui/MainLoginPG&_ri=0&_ti=587084970&language_code=US&requestUrl=http%3A%2F%2Fkmctapp2.kmc.com%3A8005%2FOA_HTML%2FRF.jsp%3Ffunction_id%3D2014%26resp_id%3D50670%26resp_appl_id%3D7000%26security_group_id%3D0%26lang_code%3DUS%26params%3Df7B5hnH8rkFfR.idy0MT1JZrquJxVBy3CVpSV.GpXc0%26oas%3DAuZa28Bnhl7glqYyqXbjsg..&cancelUrl=http%3A%2F%2Fkmctapp2.kmc.com%3A8005%2FOA_HTML%2FAppsLogin&langCode=US&oapc=2&oas=rucHEnmoEQ25-3xRNnl0ZA.. HTTP/1.1" 302 708 1 "http://kmctapp2.kmc.com:8005/OA_HTML/RF.jsp?function_id=28636&resp_id=-1&resp_appl_id=-1&security_group_id=0&lang_code=US&params=Br702.NFW.nrlg1EodytbsK-Dc1k9ERgGeColziC.cPOIi7hiyjaPiR6AJ7.Lk4IUbiFt8MZ-sww1yPk9nLXIYqdPHfttMeywkt5IQhVsrG8Y9M-0CrrcAU8ZntmtaFjlkc2vXbUaot6TQpdqAPHJyaJn6YLsew516hhfiB2xemOmo6e-.WpPrlXfvBQG.XVr-Z8y-V4uRkwwHgWHTK.ju6jLsF35BmqTRszq39cgoHe38QZqjtonDRWgTFzvxooOAmX1EHPfxfMz88uKnVWnnzU-4996ZD8e3X0Dagp19gjOYgefJlT1fTUaFvMo3cP.-7Ypt0s4Cck.GhdFOnHRK1Ok6KdvnjFyjK-WHCy4ZHCvw3NZPREYBngqJc4gvnDziIu4Yso2j4kegCe-i5OCFG4hbfDGf7MMNcj5PZy1yFwJ8GIMHyNmCAg9Yo1bXn5cTHOy7xYWHyOD5.ax3JG6Q&oas=W0vxAqkroMB_7DgeNPZhYw.." "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727)"
    172.16.6.144 - - [30/Dec/2010:13:32:51 +0530] "GET /OA_HTML/RF.jsp?function_id=2014&resp_id=50670&resp_appl_id=7000&security_group_id=0&lang_code=US&params=f7B5hnH8rkFfR.idy0MT1JZrquJxVBy3CVpSV.GpXc0&oas=AuZa28Bnhl7glqYyqXbjsg.. HTTP/1.1" 200 7534 0 "http://kmctapp2.kmc.com:8005/OA_HTML/RF.jsp?function_id=28636&resp_id=-1&resp_appl_id=-1&security_group_id=0&lang_code=US&params=Br702.NFW.nrlg1EodytbsK-Dc1k9ERgGeColziC.cPOIi7hiyjaPiR6AJ7.Lk4IUbiFt8MZ-sww1yPk9nLXIYqdPHfttMeywkt5IQhVsrG8Y9M-0CrrcAU8ZntmtaFjlkc2vXbUaot6TQpdqAPHJyaJn6YLsew516hhfiB2xemOmo6e-.WpPrlXfvBQG.XVr-Z8y-V4uRkwwHgWHTK.ju6jLsF35BmqTRszq39cgoHe38QZqjtonDRWgTFzvxooOAmX1EHPfxfMz88uKnVWnnzU-4996ZD8e3X0Dagp19gjOYgefJlT1fTUaFvMo3cP.-7Ypt0s4Cck.GhdFOnHRK1Ok6KdvnjFyjK-WHCy4ZHCvw3NZPREYBngqJc4gvnDziIu4Yso2j4kegCe-i5OCFG4hbfDGf7MMNcj5PZy1yFwJ8GIMHyNmCAg9Yo1bXn5cTHOy7xYWHyOD5.ax3JG6Q&oas=W0vxAqkroMB_7DgeNPZhYw.." "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727)"
    172.16.6.144 - - [30/Dec/2010:13:32:51 +0530] "GET /OA_HTML/cabo/images/swan/t.gif HTTP/1.1" 304 0 0 "http://kmctapp2.kmc.com:8005/OA_HTML/RF.jsp?function_id=2014&resp_id=50670&resp_appl_id=7000&security_group_id=0&lang_code=US&params=f7B5hnH8rkFfR.idy0MT1JZrquJxVBy3CVpSV.GpXc0&oas=AuZa28Bnhl7glqYyqXbjsg.." "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727)"
    172.16.6.144 - - [30/Dec/2010:13:32:51 +0530] "GET /OA_HTML/cabo/images/swan/errorl.gif HTTP/1.1" 304 0 0 "http://kmctapp2.kmc.com:8005/OA_HTML/RF.jsp?function_id=2014&resp_id=50670&resp_appl_id=7000&security_group_id=0&lang_code=US&params=f7B5hnH8rkFfR.idy0MT1JZrquJxVBy3CVpSV.GpXc0&oas=AuZa28Bnhl7glqYyqXbjsg.." "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727)"
    172.16.6.144 - - [30/Dec/2010:13:32:51 +0530] "GET /OA_HTML/cabo/images/swan/navBarUnderTopTabsBg.gif HTTP/1.1" 304 0 0 "http://kmctapp2.kmc.com:8005/OA_HTML/RF.jsp?function_id=2014&resp_id=50670&resp_appl_id=7000&security_group_id=0&lang_code=US&params=f7B5hnH8rkFfR.idy0MT1JZrquJxVBy3CVpSV.GpXc0&oas=AuZa28Bnhl7glqYyqXbjsg.." "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727)"
    172.16.6.144 - - [30/Dec/2010:13:32:51 +0530] "GET /OA_HTML/cabo/images/swan/footerBg.gif HTTP/1.1" 304 0 0 "http://kmctapp2.kmc.com:8005/OA_HTML/RF.jsp?function_id=2014&resp_id=50670&resp_appl_id=7000&security_group_id=0&lang_code=US&params=f7B5hnH8rkFfR.idy0MT1JZrquJxVBy3CVpSV.GpXc0&oas=AuZa28Bnhl7glqYyqXbjsg.." "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727)"

  • Error while running a jsp page : "jasper run time error"

    hii
    I'm facing trouble while running some jsp page . the error is as follows:
    HTTP Status 500 -
    type Exception report
    message
    description The server encountered an internal error () that prevented it from fulfilling this request.
    exception
    org.apache.jasper.JasperException: Unable to compile class for JSP
         org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:97)
         org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:346)
         org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:414)
         org.apache.jasper.compiler.Compiler.compile(Compiler.java:472)
         org.apache.jasper.compiler.Compiler.compile(Compiler.java:451)
         org.apache.jasper.compiler.Compiler.compile(Compiler.java:439)
         org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511)
         org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:295)
         org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
         org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
         javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    root cause
    Unable to find a javac compiler;
    com.sun.tools.javac.Main is not on the classpath.
    Perhaps JAVA_HOME does not point to the JDK
         org.apache.tools.ant.taskdefs.compilers.CompilerAdapterFactory.getCompiler(CompilerAdapterFactory.java:106)
         org.apache.tools.ant.taskdefs.Javac.compile(Javac.java:935)
         org.apache.tools.ant.taskdefs.Javac.execute(Javac.java:764)
         org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:382)
         org.apache.jasper.compiler.Compiler.compile(Compiler.java:472)
         org.apache.jasper.compiler.Compiler.compile(Compiler.java:451)
         org.apache.jasper.compiler.Compiler.compile(Compiler.java:439)
         org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511)
         org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:295)
         org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
         org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
         javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    note The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.
    Apache Tomcat/5.0.28
    The set up in my system (path set up is as follows):
    Catalina home: C:\ apache software foundation\Tomcat 5.0
    Classpath: %java_home%;C:\j2sdk1.4.2_03\bin;
    Javahome: C:\ j2sdk1.4.2_03\jre;
    path: C:\ j2sdk1.4.2_03\bin
    <there are other variables available in path, along with that I have added the j2sdk1.4.2_03\bin in path".
    So if u have any way out for it please let me know.

    I think you only need to add: c:\j2sdk1.4.2_01
    you have specified jre on the end of your path, it is not the jre that is required, but the jdk.
    If you are using startup.bat and shutdown.bat (or .sh on Linux) you can amend the files with a text editor (open the startup.bat in notepad), like so:
    @echo off
    set JAVA_HOME=c:\j2sdk1.4.2_01
    if "%OS%" == "Windows_NT" setlocal
    I this will start Tomcat with the correct settings, regardless of your environment settings.

  • Issue in applying SSL selectively to Login JSP Page--Session getting lost.

    Hi,
    I am facing some issues with SSL configuration on my web site running on tomcat 5.5. I am using jdk 1.5 and form based authentication with JAAS framework.
    The SSL configuration is working perfectly when applied to complete web site, but starts giving problem when applied selectively to some JSP pages. At present I am trying to apply SSL just on the login page.
    When the login screen loads up, the URL in the browser has a protocol "*https*", as expected, but it doesn't gets changed to "*http*" once the user has successfully logged in. Why is the automatic change from https to http not ocurring?
    Also I want to know which is the default page, tomcat will direct the logged in user to, once successfully authenticated using form based login; Is there any way to change this default page to some other page. It looks like that tomcat automatically directs to index.html , once the user has been successfully authenticated, but I am not so sure. My index.html page is having 4 frames; the source of these frames are different JSP pages, which are not under SSL.
    My aim is to apply SSL just on login.jsp so that password doesn't travel in clear text. Once the user is authenticated he should see index.html and the address bar's URL should change it's protocol from https to http.
    Please, find below the code in my web.xml
    <security-constraint>
    <web-resource-collection>
    <web-resource-name>CWA Application</web-resource-name>
    <url-pattern>/about.jsp</url-pattern>
    <url-pattern>/admin_listds.jsp</url-pattern>
    <http-method>DELETE</http-method>
    <http-method>GET</http-method>
    <http-method>POST</http-method>
    <http-method>PUT</http-method>
    </web-resource-collection>
    <auth-constraint>
    <role-name>*</role-name>
    </auth-constraint>
    <user-data-constraint>
    <transport-guarantee>NONE</transport-guarantee>
    </user-data-constraint>
    </security-constraint>
    <security-constraint>
    <web-resource-collection>
    <url-pattern>/*login.jsp*</url-pattern>
    <http-method>GET</http-method>
    <http-method>POST</http-method>
    </web-resource-collection>
    <auth-constraint>
    <role-name>*</role-name>
    </auth-constraint>
    <user-data-constraint>
    <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
    </security-constraint>
    <login-config>
    <auth-method>FORM</auth-method>
    <realm-name>CWA Application</realm-name>
    <form-login-config>
    <form-login-page>/login.jsp</form-login-page>
    <form-error-page>/login.jsp?error=true</form-error-page>
    </form-login-config>
    </login-config>
    <welcome-file-list>
    <welcome-file>login.jsp</welcome-file>
    </welcome-file-list>
    My login. jsp has below code:
    <form name="login" method="POST" action='<%= response.encodeURL(*"j_security_check*") %>' >
    <tr>
    <td width="100%">
    <table width="260" border="0" cellspacing="0" cellpadding="1">
    <tr>
    <td align="left" valign="top" rowspan="4"><img src="images/space.gif" width="15" height="5"></td>
    <td align="right" class="login-user" nowrap ><p>User name: </p></td>
    <td align="left" valign="top"><input maxLength="64" name="j_username" size="20"></td>
    </tr>
    <tr>
    <td align="right" nowrap class="login-user"><p>Password: </p>
    </td>
    <td align="left" valign="top">
    <input maxLength=\"64\" tabindex="2" type="password" name="j_password" size="20">
    </td>
    </tr>
    </form>
    The entries in my server.xml are following:
    <Connector port="8080" maxHttpHeaderSize="8192"
    maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
    enableLookups="false" redirectPort="8443" acceptCount="100"
    connectionTimeout="20000" disableUploadTimeout="true" />
    <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
    maxThreads="150" scheme="https" secure="true"
    keystoreFile="${java.home}\lib\security\cacerts" keystorePass="changeit"
    clientAuth="false" sslProtocol="TLS" />
    I have gone through the http://forums.sun.com/thread.jspa?threadID=197150 and tried implementing it; The filter as explained in the thread does gets called but the session values are still lost.
    Please note I am using javascript to go from secure "https" to "http" once the user has successfully logged in The javascript code is as below:
    top.location.href="http://localhost:8080/qtv/index.html." ;
    If I use response.sendRedirect("http://localhost:8080/qtv/index.html") for going to non-secure mode, the index.html page does not gets loaded properly. (Please note that my index.html is made of *4 frames*, as explained earlier. This is a legacy code and frames can't be removed).
    The reason for index.html not getting loaded properly is that the Address bar URL does NOT change its URL and protocol from https (https://localhost:8443/qtv/index.html ) to "*http*" (http://localhost:8080/qtv/index.html) when esponse.sendRedirect() is used ;this is the default behaviour of response.sendRedirect(). And because the protocol in address bar is https, index.html is not able to load the other JSP's in it's frames because of cross-frame-scripting security issues (The other JSP's to be loaded in frames are are NOT secure as discussed earlier).
    Please let know if any way out.
    Thanks,
    Masaai

    Hi
    try to set the maximum interval between requests
    eg:
    session.setMaxInactiveInterval(6000);
    vis

  • Pls help me writing logic:iterate tag in jsp page

    Hey guys , I am struck in retriving string p1,p2,p3 in the jsp page
    Pls have a look ata the code
    In DAO class:-
    StdprdDAO.java
    Public arrayList getPFP()
    ArrayList a = new ArrayList();
    While(rs.next())
         columnsVO colVO = new columnsVO;
         colVO.setProduct(rset.getString(1));//will store in String colProduct
         colVO.setFamily(rset.getString(2));//will store in String colFamily
    colVO.setPrice(rset.getString(3));//will store in String colPrice
    a.add(colVO);
    return a;
    In Action Class:-
    ArrayList final = null;
    StdprdDAO DAO = new stdprdDAO();
    final = DAO.getPFP();
    For(int i = 0; final !=null && i<final.size() ; i++)
         columnsVO VO = null;
         VO = (columnsVO)final.get(i);
         String p1 = (String) VO.getProduct();
         String p2 = (String) VO.getFamily();
         String p3 = (String) VO.getPrice();
         Request.setAttribute(“p1”,p1);
         Request.setAttribute(“p2”,p2);
         Request.setAttribute(“p3”,p3);
    In JSP PAGE:-
    id = “columnsVO”>
    <bean:write name = “columnsVO” property=”final” id=”p1”>
    but still I am doubting my above sentences in jsp page ,so pls correct them if possible.
    Instead of l;ogic:iterate can I use directly getattribute(“p1”)? <logic:iterate
    Still I m doubting I can not utilize columnsVO file in logic:iterate, I can utilize only formbean file.
    So pls help me with this.

    May I ask why have you done it?
    If it is related to printing of the list then it is of no use.But it IS of use. The objects compEmployees is in scope.
    It has the list we want to print out.
    With logic:iterate:
    <table>
         <tr>
           <th>Number</th>
           <th>Employee</th>
         </tr>
         <logic:iterate name="compEmployees" property="totalEmps" id="emp">
              <tr>
                <td>
                  <bean:write name="emp" property="empNo"/>
                </td>
                <td>
                  <bean:write name="emp" property="empName"/>
                </td>
              </tr>
         </logic:iterate>
    </table>or alternatively with JSTL and c:forEach
    <table>
         <tr>
           <th>Number</th>
           <th>Employee</th>
         </tr>
         <c:forEach items="${compEmployees.totalEmps}" var="emp">
              <tr>
                <td>
                  <c:out value="${emp.empNo}"/>
                </td>
                <td>
                  <c:out value="${emp.empName}"/>
                </td>
              </tr>
         </c:forEach>
    </table>Cheers,
    evnafets

Maybe you are looking for

  • Screen resolution in webdynpro

    Hi everyone; I create a webdynpro with 2 transparent container in rootuielementcontainer. In rootuielementcontainer I validate stretchedHorizontally's flag and stretchedVertically's flag; so when user explode the browser,the window is adapted to the

  • Have to always enter security Qs and set to private computer with on line banking. It is FireFox and not my on line banking. What do I do?

    Every time I enter my on line banking it asks me all 3 security Qs and I have to reset my computer here at home to private. I called my on line banking and they say it is the Fire Fox security settings. Can you help me not to have the process happen

  • [SOLVED] gpgme error: Bad file descriptor

    I tried to install a new system today. I chrooted into it and wanted to install some packages, but all I got was this error instead: error: GPGME Error: bad file descriptor error: <package>: missing required signature And that for each and every sing

  • GL Balances with segment Hierarchies in Discoverer

    Does anyone here have the need to report on GL balances using the Account segment hierarchies? The only way users can utilize the GL segment hierarchies is through FSG reporting and some other products such as DBI and EPF. Each segment in GL accounti

  • Nano and electronic drumkit

    Not so much a problem as informational---but maybe a problem too. I use a Yamaha DTSIII Electronic Drum Kit with external monitors. I used to plug my third gen. iPod into the drum module to play along with the songs.When I bought a Nano, I tried to u