Errors on RequestDispatcher

          I use Weblogic6.1 SP2
          I implemented new ServletRequest below coded as NewRequest class.
          This class is used in AServlet.
          if AServlet doesn't use newrequest, then no dispatch problem.
          But with NewRequest like i coded below, i see this message "javax.servlet.ServletException:
          Original request not available".
          New implementation of ServletRequest has any problem??
          public class NewRequest implements ServletRequest, HttpServletRequest {
          public class AServlet extends HttpServlet {
          public void doGet(javax.servlet.http.HttpServletRequest request,
          javax.servlet.http.HttpServletResponse response)
          throws javax.servlet.ServletException, java.io.IOException
          NewRequest newrequest = new NewRequest(request);
          RequestDispatcher rd = getServletContext().getRequestDispatcher("/test/a.jsp");
          try{
          rd.forward(newrequest,response);
          }catch(Exception e){
          System.out.println("error : "+e);
          throw new ServletException();
          

request.getRequestDispatcher (String url) can take url begining with / and not with http://.......

Similar Messages

  • Error using RequestDispatcher ....

    Hi. I have a directory structure like this
    tomcat
    |--webapps
    |-------openjms
    |------------WEB-INF
    |-----------------classes
    |----------------------CreateConsumer.java
    |-------project
    |------------WEB-INF
    |------------------classes
    |-----------------------project
    |----------------------------DBServlet.java
    Hope you guys understand this "tree" ;-o
    If DBServlet.java is running, how do I use the RequestDispatcher to send the request to CreateConsumer.java??
    is it
    RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(../../../..????);
    thanks.

    I've never tried this, but the API docs refer to javax.servlet.ServletContext.getContext().
    The call should be:
    RequestDispatcher rd = getServletContext().getContext("/openjms").getRequestDispatcher(...);
    If you do try this, could you post the results?

  • Error with requestDispatcher

    import javax.servlet.http.*;
    import javax.mail.*;
    import javax.mail.internet.*;
    import javax.activation.*;
    import java.util.*;
    import java.io.*;
    import javax.servlet.*;
    public class SendMail extends HttpServlet
         public void doPost(HttpServletRequest request, HttpServletResponse response) {
              MailInfo mailInfo = new MailInfo();
              String from = request.getParameter("from");
              String to = request.getParameter("to");
              String host = request.getParameter("host");
              String message = request.getParameter("message");
              String file = request.getParameter("file");
              String subject = request.getParameter("subject");
              mailInfo.setFrom(from);
              mailInfo.setTo(to);
              mailInfo.setHost(host);
              mailInfo.setMessage(message);
              mailInfo.setSubject(subject);
              //response.reset();
              request.setAttribute("mailInfo",mailInfo);
              try{
                   Session mailSession = Session.getDefaultInstance(new Properties(),null);
                   Address fromAddress = new InternetAddress(from);
                   Address toAddress = new InternetAddress(to);
                   MimeMultipart multipart = new MimeMultipart();
                   MimeBodyPart bodyPart = new MimeBodyPart();
                   bodyPart.setContent(message,"text/plain");
                   multipart.addBodyPart(bodyPart);
                   bodyPart = new MimeBodyPart();
                   DataSource source = new FileDataSource(file);
                   bodyPart.setDataHandler(new DataHandler(source));
                   multipart.addBodyPart(bodyPart);
                   MimeMessage mess = new MimeMessage(mailSession);
                   mess.setContent(multipart);
                   mess.setFrom(fromAddress);
                   mess.addRecipient(Message.RecipientType.TO,fromAddress);
                   Transport transport = mailSession.getTransport("smtp");
                   transport.connect(host,"","");
                   transport.sendMessage(mess, mess.getAllRecipients());
                   transport.close();
                   RequestDispatcher rd = getServletContext().getRequestDispatcher("/success.jsp");
                   rd.forward(request, response);          }catch(Exception e){
    When i run this servlet it throws an excpetion is:java.lang.IllegalStateException. This exception is thrown by the rd.forward command. I can not process it. Who can process this problem please help me. This is my email :[email protected]. Thanks a lot

    What is the stack trace of the exception?
    - Saish

  • JSP form values lost upon servlet request (RequestDispatcher)

    Hello,
    I have a query screen (jsp) that calls a servlet and gets results. However, although the results or errors display just fine (I do a setAttribute for them), I lose the initial values in the query form (values that the user input - which are stored in the request object). Shouldn't those values be maintained and displayed, since I'm using the RequestDispatcher and thus, I should have the same request object? Thank you, C Turner
    *****My JSP (the related code)*****
    <jsp:useBean id="form" class="com.foo.ActivityBean" scope="session">
    <jsp:setProperty name="form" property="*"
    </jsp:useBean>
    <HTML>
    <BODY>
    <FORM ACTION="ActivityFormHandler" METHOD="POST">
    <P><B>From Date</B>
    <INPUT TYPE="TEXT" NAME="fromDate" SIZE="9" VALUE="<jsp:getProperty name="form" property="fromDate"/>">
    <P><B>To Date</B>
    <INPUT TYPE="TEXT" NAME="fromDate" SIZE="9" VALUE="<jsp:getProperty name="form" property="toDate"/>">
    *****Java from my HttpServlet, ActivityFormHandler (acting as a formhandler)*****
    if (errors.size() == 0) {
    ActivityBean myActivityBean = new ActivityBean();
    myActivityBean.setBeanQueryValues(acctNumber, department, fromDate, toDate);
    Vector resultsVector = null;
    try {
    resultsVector = myActivityBean.executeQuery();
    } catch (CreateException ce) {
    errors.add("There was a problem retrieving the requested data from the database.");
    request.setAttribute("results", resultsVector);
    } else {
    //Data is not okay.
    String[] errorArray = (String[])errors.toArray(new String[errors.size()]);
    request.setAttribute("errors", errorArray);
    RequestDispatcher rd;
    rd = getServletContext().getRequestDispatcher("/public_html/ActivityQuery.jsp");
    //rd.forward(request, response);
    rd.include(request, response);

    For those interested in my question, here's what I figured out.
    Instead of:
    <INPUT TYPE="TEXT" NAME="fromDate" SIZE="9" VALUE="<jsp:getProperty name="form" property="fromDate"/>">
    Use:
    <INPUT TYPE="TEXT" NAME="fromDate" SIZE="9" VALUE="<%out.print(request.getParameter("fromDate"));%>">
    This allows the input field to persist the query value instead of blanking it out when the results are displayed. -ct

  • Java.lang.UnsatisfiedLinkError: nativeSAP_CMLISTEN - Error

    Hi All,
    We are in process of upgrading SRM Java from 7.01 to 7.02. While JSPM was running 250GB of trace files (around 29317 files) have been written under D:\usr\sap\SJ7\JC01\j2ee\cluster\server0 and we are forced to stop JSPM and complete SAP instance.
    As soon as we start the instance with minutes 1GB trace files are written. All these files are dev_jrfc_xxxxx.trc.
    All these files have single error repeated continuously, kindly let us know how to resolve this issue.
    Error file opened at 20110706 102426 Eastern Daylight Time Rel 7.01.3 (2008-10-28) [710.234]
    Error thrown [Wed Jul 06
    10:26:12,128]:Error in RequestDispatcher.DispatcherWorker.run() java.lang.UnsatisfiedLinkError: nativeSAP_CMLISTEN
                at com.sap.mw.rfc.driver.CpicDriver.nativeSAP_CMLISTEN(Native Method)
                at com.sap.mw.rfc.driver.CpicDriver.SAP_CMLISTEN(CpicDriver.java:1137)
                at com.sap.mw.rfc.driver.RfcTypeRegisterCpic.waitForRequest(RfcTypeRegisterCpic.java:593)
                at com.sap.mw.rfc.api.RfcApi.RfcWaitForCpicRequest(RfcApi.java:1262)
                at com.sap.mw.jco.MiddlewareJRfc.waitForRequest(MiddlewareJRfc.java:641)
                at com.sap.mw.jco.RequestDispatcher$DispatcherWorker.run(RequestDispatcher.java:159)
                at java.lang.Thread.run(Thread.java:534)
    Regards,
    Siva.

    Hi,
    java.lang.UnsatisfiedLinkError:
    This exception is raised, when there is a problem loading the native SAP JCo library (Windows: sapjco3.dll or UNIX: libsapjco3.so). Typical reasons for this are:
    native library is not in the same directory as sapjco3.jar
    native library is for incorrect OS
    native library is for 64-bit, but Java used is 32-bit. or vice-versa. E.g. use java -d64 option
    there is a problem loading dependent libraries
    Also, please check if the required ports are open.
    Hope this helps.

  • Error while upgrading SRM portal from 7.01 to 7.02

    Hi All,
    We are in process of upgrading SRM Java from 7.01 to 7.02. While JSPM was running 250GB of trace files (around 29317 files) have been written under D:\usr\sap\SJ7\JC01\j2ee\cluster\server0 and we are forced to stop JSPM and complete SAP instance.
    As soon as we start the instance with minutes 1GB trace files are written. All these files are dev_jrfc_xxxxx.trc.
    All these files have single error repeated continuously, kindly let us know how to resolve this issue.
    Error file opened at 20110706 102426 Eastern Daylight Time Rel 7.01.3 (2008-10-28) [710.234]
    Error thrown [Wed Jul 06
    10:26:12,128]:Error in RequestDispatcher.DispatcherWorker.run() java.lang.UnsatisfiedLinkError: nativeSAP_CMLISTEN
                at com.sap.mw.rfc.driver.CpicDriver.nativeSAP_CMLISTEN(Native Method)
                at com.sap.mw.rfc.driver.CpicDriver.SAP_CMLISTEN(CpicDriver.java:1137)
                at com.sap.mw.rfc.driver.RfcTypeRegisterCpic.waitForRequest(RfcTypeRegisterCpic.java:593)
                at com.sap.mw.rfc.api.RfcApi.RfcWaitForCpicRequest(RfcApi.java:1262)
                at com.sap.mw.jco.MiddlewareJRfc.waitForRequest(MiddlewareJRfc.java:641)
                at com.sap.mw.jco.RequestDispatcher$DispatcherWorker.run(RequestDispatcher.java:159)
                at java.lang.Thread.run(Thread.java:534)
    Regards,
    Siva.

    Hi Siva,
    it seems to me that you have heavy log archiving on the system. You can switch the log severity of all (or at least most) of the locations to the default. In addition, switch off the archiving of old log files:
    In the visual configtool navigate to Server -> Services -> Log Configurator -> Properties tab and set the value of the ArchiveOldLogFiles to "OFF".
    Also, using the Visual Administrator -> Services -> Log Configurator -> restore to default all the trace levels.
    Regards,
    Jonas Cella

  • Request.getParameter() always returns null

    I have a html file and am trying to retrieve the values from a formin my servlet.
    here is the html code:
    <html>
    <head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <h1><b>Add DVD</b></h1>
    </head>
    <body>
    <form action="add_dvd.do" method="POST">
    Title:<input type="text" name="title" />
    Year:<input type="text" name="year" />
    Genre: <select name='gselected'>
    <option value='Sci-Fi'>Sci-Fi</option>
    </select>
    or enter new genre:<input type="text" name='gentered' value="" />
    <input type="submit" value="Add DVD" />
    </form>
    </body>
    </html>
    and here is the servlet code:
    public class AddDVDServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    // System.out.println("in AddDVDServlet post method");
    List errorMsgs = new LinkedList();
    //retrieve form parameters
    try{
    String title = request.getParameter("title").trim();
    String year = request.getParameter("year").trim();
    *String gentered = request.getParameter("gentered");
    String gselected = request.getParameter("gselected");
    String genre="";
    if("".equals(gentered))
    genre = gselected;
    else
    genre = gentered;
    // System.out.println("parameter retrieved");
    if(!year.matches("\\d\\d\\d\\d"))
    // System.out.println("year not 4 digit long");
    errorMsgs.add("Year must be four digit long");
    if("".equals(title))
    // System.out.println("title not entered");
    errorMsgs.add("Please enter the title of the dvd");
    if("".equals(genre))
    // System.out.println("genre not valid");zdf
    errorMsgs.add("Enter genre.");
    if(! errorMsgs.isEmpty())
    //System.out.println("errors in entry ");
    request.setAttribute("errors",errorMsgs);
    // System.out.println("error attribute set in request");
    RequestDispatcher rd = request.getRequestDispatcher("error.view");
    rd.forward(request, response);
    return;
    //create DVDItem instance
    DVDItem dvd = new DVDItem(title,year,genre);
    request.setAttribute("dvdItem",dvd);
    RequestDispatcher rd = request.getRequestDispatcher("success.view");
    rd.forward(request, response);
    catch(Exception e){
    errorMsgs.add(e.getMessage());
    request.setAttribute("errors",errorMsgs);
    RequestDispatcher rd = request.getRequestDispatcher("error.view");
    rd.forward(request, response);
    e.printStackTrace();
    System.out.println("exception:"+e);
    why does getParameter always return null??? whats wrong?

    I don't know. However, I suspect that because you have a tag with the same name as 'title', its causing a name conflict. Chnage the name to something else. If it works, then that's the likely explaination.

  • JSP - Bean - Scope Issue with ResultSet

    Hi there,
    I have a JSP page that uses a Bean to get ResultSets from a db. My methods return ResultSets, but they seem to get out of scope on the JSP page when I try to use them. I'm not sure why. I have included 2 snippets below one that works and one that doesn't. I get a java.lang.null exception when the page is run. Not sure how or why the variable seems to go out of scope? I can work around it, but I would rather find out why this is happening.
    This one fails:
    <%@ page errorPage="error.jsp" %>
    <%@ page import="utils.LookupBean" %>
    <%@ page import="java.sql.ResultSet" %>
    <%
    try{
    %>
    <html>
    <head>
    <title>lookup</title>
    </head>
    <body>
    <jsp:useBean id="lookup" class="utils.LookupBean">
    <%
    ResultSet roem = lookup.getOEMDropdown();
    //open db conn
    lookup.openIlprod();
    if(roem!=null){
    %>
    OEM:  
    <select name="OEM">
    <%
    while(roem.next()){
    %>
    <option value="<%=roem.getString("id")%>"><%=roem.getString("name")%></option>
    <%
    %>
    </select><br><br>
    <%
    else{
    out.println("OEM:  no records<br><br>");
    %>
    </jsp:useBean>
    </body>
    </html>
    <%
    catch(Exception e){     
         //log to Tomcat
    %>
    This one works....why??
    <%@ page errorPage="error.jsp" %>
    <%@ page import="utils.LookupBean" %>
    <%@ page import="java.sql.ResultSet" %>
    <%
    try{
    %>
    <html>
    <head>
    <title>lookup</title>
    </head>
    <body>
    <jsp:useBean id="lookup" class="utils.LookupBean">
    <%
    //open db conn
    lookup.openIlprod();
    ResultSet roem = lookup.getOEMDropdown();
    if(roem!=null){
    %>
    OEM:  
    <select name="OEM">
    <%
    while(roem.next()){
    %>
    <option value="<%=roem.getString("id")%>"><%=roem.getString("name")%></option>
    <%
    %>
    </select><br><br>
    <%
    else{
    out.println("OEM:  no records<br><br>");
    %>
    </jsp:useBean>
    </body>
    </html>
    <%
    catch(Exception e){     
         //log to Tomcat
    %>

    <%@ page errorPage="error.jsp" %>
    <%@ page import="utils.LookupBean" %>
    <%@ page import="java.sql.ResultSet" %>
    <%
    String ilprod_db_user;
    String ilprod_db_pass;
    String tedsi_prod_owner;
    String nsp_portal_owner;
    String iladmin_owner;
    String ilprod_db_host;
    String ilprod_db_port;
    String ilprod_db_service;
    try{
         //get the ilprod_db_user from the deployment descriptor
         ilprod_db_user = (String)getServletContext().getInitParameter("ilprod_db_user");
         //ensure a value is present
         if(ilprod_db_user==null||ilprod_db_user.equals("")){
         throw new ServletException("Error retrieving ilprod_db_user from deployment descriptor. - ilprod_db_user is null or an empty string");
         //get the ilprod_db_pass from the deployment descriptor
         ilprod_db_pass = (String)getServletContext().getInitParameter("ilprod_db_pass");
         //ensure a value is present
         if(ilprod_db_pass==null||ilprod_db_pass.equals("")){
         throw new ServletException("Error retrieving ilprod_db_pass from deployment descriptor. - ilprod_db_pass is null or an empty string");
         //get the tedsi_prod_owner from the deployment descriptor
         tedsi_prod_owner = (String)getServletContext().getInitParameter("tedsi_prod_owner");
         //ensure a value is present
         if(tedsi_prod_owner==null||tedsi_prod_owner.equals("")){
         throw new ServletException("Error retrieving tedsi_prod_owner from deployment descriptor. - tedsi_prod_owner is null or an empty string");
         //get the nsp_portal_owner from the deployment descriptor
         nsp_portal_owner = (String)getServletContext().getInitParameter("nsp_portal_owner");
         //ensure a value is present
         if(nsp_portal_owner==null||nsp_portal_owner.equals("")){
         throw new ServletException("Error retrieving nsp_portal_owner from deployment descriptor. - nsp_portal_owner is null or an empty string");
         //get the iladmin_owner from the deployment descriptor
         iladmin_owner = (String)getServletContext().getInitParameter("iladmin_owner");
         //ensure a value is present
         if(iladmin_owner==null||iladmin_owner.equals("")){
         throw new ServletException("Error retrieving iladmin_owner from deployment descriptor. - iladmin_owner is null or an empty string");
         //get the ilprod_db_host from the deployment descriptor
         ilprod_db_host = (String)getServletContext().getInitParameter("ilprod_db_host");
         //ensure a value is present
         if(ilprod_db_host==null||ilprod_db_host.equals("")){
         throw new ServletException("Error retrieving ilprod_db_host from deployment descriptor. - ilprod_db_host is null or an empty string");
         //get the ilprod_db_port from the deployment descriptor
         ilprod_db_port = (String)getServletContext().getInitParameter("ilprod_db_port");
         //ensure a value is present
         if(ilprod_db_port==null||ilprod_db_port.equals("")){
         throw new ServletException("Error retrieving ilprod_db_port from deployment descriptor. - ilprod_db_port is null or an empty string");
         //get the ilprod_db_service from the deployment descriptor
         ilprod_db_service = (String)getServletContext().getInitParameter("ilprod_db_service");
         //ensure a value is present
         if(ilprod_db_service==null||ilprod_db_service.equals("")){
         throw new ServletException("Error retrieving ilprod_db_service from deployment descriptor. - ilprod_db_service is null or an empty string");
    %>
    <html>
    <head>
    <title>lookup</title>
    </head>
    <body>
    <jsp:useBean id="lookup" class="utils.LookupBean">
    <jsp:setProperty name="lookup" property="ilprod_db_user" value="<%=ilprod_db_user%>"/>
    <jsp:setProperty name="lookup" property="ilprod_db_pass" value="<%=ilprod_db_pass%>"/>
    <jsp:setProperty name="lookup" property="tedsi_prod_owner" value="<%=tedsi_prod_owner%>"/>
    <jsp:setProperty name="lookup" property="nsp_portal_owner" value="<%=nsp_portal_owner%>"/>
    <jsp:setProperty name="lookup" property="iladmin_owner" value="<%=iladmin_owner%>"/>
    <jsp:setProperty name="lookup" property="ilprod_db_host" value="<%=ilprod_db_host%>"/>
    <jsp:setProperty name="lookup" property="ilprod_db_port" value="<%=ilprod_db_port%>"/>
    <jsp:setProperty name="lookup" property="ilprod_db_service" value="<%=ilprod_db_service%>"/>
    <%
    //open db conn
    lookup.openIlprod();
    ResultSet roem = lookup.getOEMDropdown();
    ResultSet rstat = lookup.getStatusDropdown();
    if(roem!=null){
    %>
    OEM:��
    <select name="OEM">
    <%
    while(roem.next()){
    %>
    <option value="<%=roem.getString("id")%>"><%=roem.getString("name")%></option>
    <%
    %>
    </select><br><br>
    <%
    else{
    out.println("OEM:  no records<br><br>");
    //******* IF I PUT ResultSet IN FRONT OF rstat HERE IT WORKS FINE?
    rstat = lookup.getStatusDropdown();
    if(rstat!=null){
    %>
    Status:��
    <select name="status">
    <%
    while(rstat.next()){
    %>
    <option value="<%=rstat.getString("id")%>"><%=rstat.getString("description")%></option>
    <%
    %>
    </select><br><br>
    <%
    else{
    out.println("Status:  no records<br><br>");
    //close db conn
    lookup.closeIlprod();
    %>
    </jsp:useBean>
    </body>
    </html>
    <%
    catch(Exception e){
         //set request attributes to pass to error page
         request.setAttribute("javax.servlet.error.exception",e);
         request.setAttribute("javax.servlet.error.message",e.getMessage());
         request.setAttribute("javax.servlet.error.request_uri",     request.getRequestURI());
         request.setAttribute("javax.servlet.error.servlet_name", request.getServletPath());
         //log to Tomcat
         application.log(" Message: "+e.getMessage()+'\r'+'\n'+"RequestURI: "+request.getRequestURI()+'\r'+'\n'+"Servlet Path: "+request.getServletPath(),e);
         //forward to the error page
         RequestDispatcher rd =     request.getRequestDispatcher("error.jsp");
         rd.forward(request,response);
         //out.println(e.getMessage());
    %>

  • Repost-Best way of using connection pooling

    I am reposting this, seems best suitable in this category.
    I am using Eclipse 3.1 along with Tomcat 5.0, MySQL 4.1, J2EE1.4. I could set up the JNDI Dataresource connection pooling and tested with small test servlet. Now thinking of having common methods for getting connection / closing / commiting ....etc.
    I wrote following. [Please let me know whether it is correct way of doing it - as i am not very sure]
    package common;
    import java.sql.*;
    import javax.sql.*;
    import javax.naming.*;
    import org.apache.log4j.Logger;
    public final class connectionManager {
         private static Logger logger = Logger.getLogger(common.connectionManager.class);
         public connectionManager() {}
         public static Connection getConn () throws NamingException, SQLException
    //JNDI DataSource connection pooling
              Connection conn = null;
              try{
                   Context initContext = new InitialContext();
                   Context envContext  = (Context)initContext.lookup("java:/comp/env");
                   DataSource ds = (DataSource)envContext.lookup("jdbc/TQ3DB");
                   conn = ds.getConnection();
              }catch (NamingException ne) {
                  new GlobalExceptionHandler(logger, ne);
                   conn = null;
                   throw new NamingException();
              }catch (SQLException e){
                   new GlobalExceptionHandler(logger, e);
                   conn = null;
                   throw new SQLException();
              return conn;
           }//getConnection
         public static void commit(Connection conn) throws SQLException
              conn.commit();
         public static void rollback(Connection conn) throws SQLException
              conn.rollback();
           public static void setAutoCommit(Connection conn, boolean autoCommit)
                                        throws SQLException
                conn.setAutoCommit(autoCommit );
         public static void closeConnection(Connection conn) throws SQLException{
              if (conn != null) {
                   conn.close();
                   conn = null;
         }//closeConnection
         public static void closeResources(ResultSet oRS, PreparedStatement pstmt) throws SQLException
              if (oRS != null) {
                   oRS.close();
                   oRS = null;
              if (pstmt != null) {
                        pstmt.close();
                        pstmt = null;
         } // closeResources
    }//ConnectionManager
    I am having a login form which submits user name and password. I am checking this against the database. Following is the servlet to do that.
    package login;
    import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import java.sql.*;
    import common.*;
    public class loginServlet extends HttpServlet {
         public void doGet(HttpServletRequest request, HttpServletResponse response)
                   throws ServletException, IOException {          
              doPost(request, response);
         }//doGet
         public void doPost(HttpServletRequest request, HttpServletResponse response)
                   throws ServletException,IOException{
              String userId = request.getParameter("userId");
              String password = request.getParameter("password");
              ** call a method to validate the password which will return the
              ** User Name for authorized users and null string for un-authorised.
              String uName = validateUser(userId, password);
              //if uName is null .. user is not authorized.
              if (uName == null){
                   //redirect to jsp page with error message
                  RequestDispatcher rd =
                       getServletContext().getRequestDispatcher("/jsps/mainmenu.jsp");
                  if (rd != null){
                       rd.forward(request,response);
              else{
                   // the user is valid - create a seesion for this user.
                   HttpSession userSession = request.getSession(true);
                   // put the user name session variable.
                   userSession.setAttribute("userName", uName);
                   //redirect to Main menu page
                   RequestDispatcher rd =
                        getServletContext().getRequestDispatcher("/jsps/mainmenu.jsp");
                   if (rd != null){
                        rd.forward(request,response);
         }// end of doPost
         private String validateUser(String userId, String password)
                   throws SQLException{
              String returnVal = null;
              connectionManager cm = new connectionManager();
              Connection conn = null;
              PreparedStatement pstmt = null;
              ResultSet oRS = null;
              try{
                   //get the connection
                   conn = cm.getConn ();
                   //get records from user table for this user id and password
                   String sQry = "SELECT  user_login FROM user "
                             + "where user_login = ? AND user_pwd = ? ";
                   pstmt = conn.prepareStatement(sQry);
                   pstmt.setString(1, userId);
                   pstmt.setString(2, password);
                   oRS = pstmt.executeQuery();
                   //check for record
                   if (oRS.next()) {
                        returnVal = oRS.getString("user_login");
                   }else {returnVal = null;}
                 }catch (Exception e){            
                      returnVal = null;
              }finally{
                   cm.closeResources(oRS, pstmt);
                   cm.closeConnection(conn);
              return returnVal;
    }// end of servlet class
    But i am unable to compile it and i am also getting lots of warnings.
    I am getting error at line
    1)String uName = validateUser(userId, password);
    Unhandled exception type SQLException loginServlet.java TQ3/WEB-INF/src/login line
    Following warnings:
    2)For loginServlet Declaration
    The serializable class DBTest does not declare a static final serialVersionUID field of type long loginServlet.java
    3)The static method getConn() from the type connectionManager should be accessed in a static way
    4)The static method closeResources(ResultSet, PreparedStatement) from the type connectionManager should be accessed in a static way
    5)The static method closeConnection(Connection) from the type connectionManager should be accessed in a static way
    Definitely I am doing it wrong but exactly where? I am having very strong doubt the way i am using connections is not the correct way. Pls help me.
    regards
    Manisha

    I am in a search of best way to use connection pooling. Initially was using simple JDBC call, then modified to JNDI, afterwards tried to have common class. Later came accross the idea of Singleton/Static. I wanted to have a common class which will handle all connection related issues and at the same time give good performance.
    With due respect to all Java Gurus: i got all from web articles/tutorials/java forum etc. There is a long discussion regarding Singlet vs static in this forum. But finally got confused and could not figure out in my case which method shall i make use of, so tried both.
    What I want is somebody pointing out flwas inside my 2 code snippets and guide me about which method shall i adopt in future.
    Static way:
    package common;
    import java.sql.Connection;
    import javax.sql.DataSource;
    import java.sql.SQLException;
    import javax.naming.InitialContext;
    import javax.naming.NamingException;
    public final class ConnectionManager_Static {
         private static InitialContext ctx = null;
         private static DataSource ds = null;
         public ConnectionManager_Static(){     }
         //as the staic method is updating static var i am synchonizing it
         private static synchronized void getDatasource () throws NamingException, SQLException
              if (ds == null){
                   ctx = new InitialContext();
                   ds = (DataSource)ctx.lookup("java:comp/env/jdbc/MySql");
         //making getConnection() also static as it is not instance specific     
         public static Connection getConnection () throws NamingException, SQLException, Exception
              Connection conn = null;
              try{     
                   if (ds == null) {getDatasource ();}
                   if (ds != null) {
                        conn = ds.getConnection();                 
              }catch (Exception e){
                   throw new Exception("From ConnectionManager_Static",e);
              return conn;
           }//getConnection
    }Singleton:
    package common;
    import java.sql.*;
    import javax.sql.*;
    import javax.naming.*;
    public final class ConnectionManager_Singleton {
             private static ConnectionManager_Singleton INSTANCE = null;
              private DataSource datasource = null;
              // Private constructor for singleton pattern
             private ConnectionManager_Singleton() throws NamingException{
                   Context ctx = new InitialContext();
                   datasource = (DataSource)ctx.lookup("java:comp/env/jdbc/MySql");
             //synchronized creator for  multi-threading issues
             //another if check to avoid multiple instantiation
             private synchronized static void createInstance() throws NamingException{
                 if (INSTANCE == null) {
                     INSTANCE = new ConnectionManager_Singleton();
             public static ConnectionManager_Singleton getInstance() throws NamingException {
                 if (INSTANCE == null) createInstance();
                 return INSTANCE;
              public Connection getConnection() throws Exception
                   Connection con = null;
                   try{
                        con = datasource.getConnection();
                   }catch(Exception e){
                        throw new Exception("From connection manager singleton ", e);
                   return con;
    }Sorry, It's becoming long.
    Thanaks in advance,
    Manisha

  • Help a new guys with JSP!

    Hi,
    i'm a new programer with JSP.
    I've created a class files that connect a database.
    But i would like to know how to write text with JSP?
    I would like to write a 'thank you' message after saving a form in a database.
    does its possible to have it in my class files?
    thanks for your help.

    Im not an expert on jsp or java but i will try to give my ideas.. i hope i can help you =)
    /* you could actually forward your servlet to your confirmation file like this : */
              ServletContext sc = getServletContext();
    .// just fill up here the variable msg , u cud write to its value your thank you message or something else like error messages
              RequestDispatcher rd = sc.getRequestDispatcher("/Confirmation.jsp?msg="+msg);          
              rd.forward(req, res);     
    /******* or u cud also throw ur request to the same jsp and display the ***/
    /******* message thru a form tag using javascript like this : ***/
    suppose your main jsp is this:
    <html>
    <head>
    <STYLE TYPE="text/css">
         .noBorder{
              border: white 0px solid;
              background-color: white;
              font-family:Arial;
              font-size:13px;
              font-weight: bold;
              color:green;
              width:300px;
              text-align:center;
    </STYLE>
    </head>
    <%!
    Connection conn;
    PreparedStatement pstmt;
    private doInsert(String name){
    // this is an oracle connection
    String sql = "INSERT INTO TABLENAME(FIELD1) VALUES(?)"
    try{     
    Class.forName("oracle.jdbc.driver.OracleDriver");
    // just fill up the dburl , dnusername and dbpassword
    conn = DriverManager.getConnection(dburl,dbusername,dbpassword);
    pstmt = conn.prepareStatement(sql);
    pstmt.clearParameters(); // clear any previous parameter values
    pstmt.setString(1,name);
    pstmt.close();
    }catch(SQLException se){     
    }catch(Exception e){          
    }finally{
    if(conn!=null){
         try{
         conn.close();
         }catch(SQLException se){}
    %>
    <body>
    <form method=post"" name="msgscr">
    <tr><td colspan="2"><input type="text" name="msg" value="" class="noBorder" disabled/></td></tr>
    </form>
    <%
    if(request.getParamater("submit")!=null){
    // you could also add a return value for doInsert method to check whether the dbase insertion
    // is successful or not if the return value is true then the value for the document.msgscr.msg.value
    // is thank you otherwise u cud put "Unable to process your request" or other message
    doInsert(request.getParameter("name"));
    out.println("<script>document.msgscr.msg.value='Thanks you!!!!';</script>")
    %>
    <!-- this means that the request qill be thrown on this file-->
    <form method="post">
    <tr>
    <td>NAme : </td>
    <td><input type="text" name="name" value=""/></td>
    </tr>
    <tr><td colspan="2" align="center"><input type="submit" name="submit " value="Submit"></td></tr>
    </form>
    </body>
    </html>     
    /**** or you could also do the confirmation message just by adding an **/
    /**** alert message using javascript like this: **/
    <head>
    <script language="javascript">
    function ValidateCreate(theform){
         if(theform.name.value==""){
         alert("name is required");
         return false;
         }else{
         alert("Thank you!!!!");
    return true;
    </script>
    </head>
    <body>
    <form method="post" onsubmit="return ValidateCreate(this)">
    <tr>
    <td>NAme : </td>
    <td><input type="text" name="name" value=""/></td>
    </tr>
    <tr><td colspan="2" align="center"><input type="submit" name="submit " value="Submit"></td></tr>
    </form>

  • Apache-zip.jar name attachment file bad encoding

    I have following code. which create zip archive, but name attachment files bad encoding.
    name attachment files in encoding UTF-8. letters of Russian alphabet -"&#1080;&#1084;&#1103;.txt". get - "¯à¨ï⨥  à鸞.txt" OS - Ubuntu 9.10 64-b
    package action;
    import org.apache.tools.zip.ZipEntry;
    import org.apache.tools.zip.ZipOutputStream;
    import java.io.*;
    import java.util.Arrays;
    import java.util.List;
    public class CreateArchive {
        private byte[] getByteFromFile(String file) throws IOException {
            InputStream is = new FileInputStream(file);
            long length = file.length();
            if (length > Integer.MAX_VALUE) {
                throw new IOException("Size file bad: "+file);
            byte[] bytes = new byte[(int)length];
            int offset = 0;
            int numRead;
            while (offset < bytes.length && (numRead=is.read(bytes, offset, bytes.length-offset)) >= 0) {
                offset += numRead;
            if (offset < bytes.length) {
                throw new IOException("Could not completely read file "+file);
            is.close();
            return bytes;
        public void createZip(OutputStream outputStream, List<String> files) {
            byte[] buf = new byte[1024];
            try {
                ZipOutputStream out = new ZipOutputStream(outputStream);
                out.setEncoding("UTF-8");
                for (String fileName: files) {
                    ByteArrayInputStream sourceStream = new ByteArrayInputStream(getByteFromFile(fileName));
                    out.putNextEntry(new ZipEntry(fileName));
                    int len;
                    while ((len = sourceStream.read(buf)) != -1) {
                        out.write(buf, 0, len);
                    out.closeEntry();
                out.close();
            } catch (IOException e) {
                System.out.print(e);
        public static void main(String[] args) throws IOException {
            CreateArchive files = new CreateArchive();
            OutputStream outputStream = new FileOutputStream("file.zip");
            files.createZip(outputStream, Arrays.asList("&#1080;&#1084;&#1103;.txt"));
            outputStream.close();
    }Sorry for me bad english
    Edited by: P1tBull on Mar 24, 2010 5:35 AM

    Real task was create general archive is selected users files and transmission he in one stream
    package action;
    import org.apache.tools.zip.ZipEntry;
    import javax.servlet.RequestDispatcher;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.*;
    import java.util.Arrays;
    import java.util.List;
    import java.util.zip.ZipOutputStream;
    public class StreamFiles extends HttpServlet {
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            doGet(request, response);
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            OutputStream out = response.getOutputStream();
            try {
                response.setContentType("'application/zip'; charset='UTF-8'");
                response.setContentType("name=AllFile");
                response.setHeader("Content-disposition", "attachment; filename*=utf-8" + "''" + java.net.URLEncoder.encode("AllFile.zip", "UTF-8") + ";");
                if (request.getHeader("user-agent") != null) {
                    if (request.getHeader("user-agent").indexOf("Safari") != -1) {
                        response.setHeader("Content-Disposition", "attachment");
                        response.setContentType("application/octet-stream");
                    } else if (request.getHeader("user-agent").indexOf("MSIE") != -1 || request.getHeader("user-agent").indexOf("Chrome") != -1) {
                        response.setHeader("Content-disposition", "attachment; filename=" + java.net.URLEncoder.encode("AllFile.zip", "UTF-8"));
                List<String> files = Arrays.asList("catalina.bat", "startup.sh", "version.sh", "tomcat-juli.jar");
                createZip(out, files);
            } catch (Exception ex) {
                request.setAttribute("javax.servlet.jsp.jspException", ex);
                RequestDispatcher requestDispatcher = request.getRequestDispatcher("/error.jsp");
                requestDispatcher.forward(request, response);
            } finally {
                out.flush();
                out.close();
        private byte[] getByteFromFile(String file) throws IOException {
            InputStream is = new FileInputStream(file);
            long length = file.length();
            if (length > Integer.MAX_VALUE) {
            byte[] bytes = new byte[(int)length];
            int offset = 0;
            int numRead;
            while (offset < bytes.length && (numRead=is.read(bytes, offset, bytes.length-offset)) >= 0) {
                offset += numRead;
            if (offset < bytes.length) {
                throw new IOException("Could not completely read file "+file);
            is.close();
            return bytes;
        public void createZip(OutputStream outputStream, List<String> files) {
            byte[] buf = new byte[1024];
            try {
                ZipOutputStream out = new ZipOutputStream(outputStream);
                for (String fileName: files) {
                    ByteArrayInputStream sourceStream = new ByteArrayInputStream(getByteFromFile(fileName));
                    out.putNextEntry(new ZipEntry(fileName));
                    int len;
                    while ((len = sourceStream.read(buf)) != -1) {
                        out.write(buf, 0, len);
                    out.closeEntry();
                out.close();
            } catch (IOException e) {
                System.out.print(e);
    }but mistake on real host don't repeated, so thanks for answer
    Edited by: P1tBull on Mar 24, 2010 8:14 AM

  • Dev_jrfc.trc (filesystemfull)

    Hi,
    on my J2ee instance are thrown hundreds of dev_jrfc.trc.
    does anybody know the reason why??
    KR
    Wolfgang
    Error thrown [Tue May 06 12:03:37,429]:Error in RequestDispatcher.DispatcherWorker.run()
    java.lang.UnsatisfiedLinkError: nativeSAP_CMLISTEN
         at com.sap.mw.rfc.driver.CpicDriver.nativeSAP_CMLISTEN(Native Method)
         at com.sap.mw.rfc.driver.CpicDriver.SAP_CMLISTEN(CpicDriver.java:1131)
         at com.sap.mw.rfc.driver.RfcTypeRegisterCpic.waitForRequest(RfcTypeRegisterCpic.java:593)
         at com.sap.mw.rfc.api.RfcApi.RfcWaitForCpicRequest(RfcApi.java:1261)
         at com.sap.mw.jco.MiddlewareJRfc.waitForRequest(MiddlewareJRfc.java:580)
         at com.sap.mw.jco.RequestDispatcher$DispatcherWorker.run(RequestDispatcher.java:159)
         at java.lang.Thread.run(Thread.java:534)
    Error thrown [Tue May 06 12:03:37,430]:Error in RequestDispatcher.DispatcherWorker.run()
    java.lang.UnsatisfiedLinkError: nativeSAP_CMLISTEN
         at com.sap.mw.rfc.driver.CpicDriver.nativeSAP_CMLISTEN(Native Method)
         at com.sap.mw.rfc.driver.CpicDriver.SAP_CMLISTEN(CpicDriver.java:1131)
         at com.sap.mw.rfc.driver.RfcTypeRegisterCpic.waitForRequest(RfcTypeRegisterCpic.java:593)
         at com.sap.mw.rfc.api.RfcApi.RfcWaitForCpicRequest(RfcApi.java:1261)
         at com.sap.mw.jco.MiddlewareJRfc.waitForRequest(MiddlewareJRfc.java:580)
         at com.sap.mw.jco.RequestDispatcher$DispatcherWorker.run(RequestDispatcher.java:159)
         at java.lang.Thread.run(Thread.java:534)

    SP,
    Try to Switch off  JRFC trace and restart the server.
    name
    jrfc*.trc
    location
    directory j2ee/cluster/server* or defined path
    how to switch on and off
    set JVM options for the server via the Config Tool and restart server:
    -Djrfc.trace=0/1,
    -Djco.trace_path=[defined_path]
    Look at the below sap note for more details: 875386
    Regards,
    Karthick Eswaran

  • Error While using RequestDispatcher.forward

    Hi All,
    I am getting an error while i am forwarding a request from a controller servlet to a JSP in WAS 3.5.
    i am using the following code:
    String url = "../gede/globalservices/SCSLogin.jsp";
    RequestDispatcher rd = getServletConfig().getServletContext().getRequestDispatcher(url);
    rd.forward(request, response);
    The error i get is :
    Error 404
    An error has occured while processing request:http://teamsite-cwc-review.indsys.ge.com/cwc/servlet/com.geindsys.gede.globalservices.SCSControllerServlet
    Message: [JSP 1.0 Processor] reported an error
    i was able to get the same while using response.SendRedirect(url);
    Please help..
    Thanks in Advance..
    Regards,
    Ravi.

    Looks like your JSP is throwing an exception. Check the logs in your server to find the details about it. (Was there an XML question here? I couldn't see one.)

  • Error While using RequestDispatcher.forward --URGENT!!!

    Hi All,
    I am getting an error while i am forwarding a request from a controller servlet to a JSP in WAS 3.5.
    i am using the following code:
    String url = "../gede/globalservices/SCSLogin.jsp";
    RequestDispatcher rd = getServletConfig().getServletContext().getRequestDispatcher(url);
    rd.forward(request, response);
    The error i get is :
    Error 404
    An error has occured while processing request:http://teamsite-cwc-review.indsys.ge.com/cwc/servlet/com.geindsys.gede.globalservices.SCSControllerServlet
    Message: [JSP 1.0 Processor] reported an error
    i was able to get the same while using response.SendRedirect(url);
    Please help..
    Thanks in Advance..
    Regards,
    Ravi.

    I think the problem is in the ".." part of your url.
    If you have a webapp named cwc in the webapps/cwc directory and in this webapp in there is a file SCSLogin.jsp under webapps/cwc/gede/globalservices you should use a URL:
    String url = "/gede/globalservices/SCSLogin.jsp";

  • RequestDispatcher error

              hi
              while using the the forward method in RequestDispatcher, i encounter the error below. it is complaining that it cant find the method "RequestDispatcherImpl.forward".
              as my machine has a few different JDKs, is there the possiblity of it using the wrong one? i have set my JAVA_HOME to JDK1.2.2 though.
              i have checked that my classpaths are set correctly as well.
              any help is much appreciated.
              thanx
              yunyee
              ********* Error Log **********
              Mon Nov 27 17:41:28 GMT+08:00 2000:<E> <ServletContext-General> Servlet failed with Exception
              java.lang.NoSuchMethodError
              at weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:95)
              

    Hello,
              I suppose u should first download the j2eesdk1.2.2 , or simply download the jsdk (Java Servlet Development Kit) from developer connection in java.sun.com.
              In fact, your library for servlet may just support Servlets spec. 2.1, which does not contain the imple. of RequestDispatcher.
              Anthony
              yunyee wrote:
              > hi
              >
              > while using the the forward method in RequestDispatcher, i encounter the error below. it is complaining that it cant find the method "RequestDispatcherImpl.forward".
              >
              > as my machine has a few different JDKs, is there the possiblity of it using the wrong one? i have set my JAVA_HOME to JDK1.2.2 though.
              > i have checked that my classpaths are set correctly as well.
              >
              > any help is much appreciated.
              > thanx
              >
              > yunyee
              >
              > ********* Error Log **********
              > Mon Nov 27 17:41:28 GMT+08:00 2000:<E> <ServletContext-General> Servlet failed with Exception
              > java.lang.NoSuchMethodError
              > at weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:95)
              Click here for Free Video!!
              http://www.gohip.com/free_video/
              [ctlai.vcf]
              

Maybe you are looking for