Servlet/jsp & custom sessions

          Our app is using custom sessions with most of the data stored in
          ejbeans. We can't really use http sessions
          as multiple 'http' sessions may end up using the same set of beans which
          make up our own 'application defined'
          session. As the set of beans making up one session are typically located
          on the same host, we'd like to make sure
          that all requests using them are processed on the respecting host.
          I understand now that performing some kind of 'servlet-chaining' in
          order to forward a request to the correct host
          is a bad idea. Our current solution is to wrap the processing of the
          request into a ejbean which is made available
          throughout the cluster by adding a reference into the jndi tree (using
          the beans allows us to ensure that sessions time
          out when necessary.) What i don't like about this approach is that there
          is no way to write a simple servlet or jsp
          pages as direct access to the servlet interface is lost (a copy of the
          servlet-related data could be sent to the bean
          on remote host, but that's expensive and ends up in something similar to
          servlet-chaining.)
          Does any know of possibilities to solve this problem a little bit more
          elegantly? Essentially i'd like to run servlet and
          jsp pages on top of our 'application defined' sessions, efficiently
          working in a cluster.
          Thanks a lot for any suggestions,
          roman
          

          thank's for your reply!
          the whole thing is not really related to ejb, i'm just using it as a
          workaround.
          it's actually a gross misuse of ejb...
          the main issue is that i'd like to be able to write jsp pages and store
          per-session
          information in a object other than the HttpSession. i cannot use the
          HttpSession
          because one session in our application does not necessarily correspond
          to one http
          session.
          so far the solution is trivial; i just keep keep a reference to the
          session data
          in the jndi tree. for each request, i can find the data with one jndi
          lookup. it
          even works on a cluster by using remote objects and a replicated jndi
          tree (thank
          you, weblogic!)
          but, for efficiency, i'd also like to process each request on the same
          host where
          the session data is stored... how can i do that without servlet
          chaining?
          roman
          Prasad Peddada wrote:
          >
          > It is not quite clear to me what you are trying to do here.
          >
          > What type of ejbs are you talking about?
          >
          > Roman Puttkammer wrote:
          >
          > > Our app is using custom sessions with most of the data stored in
          > > ejbeans. We can't really use http sessions
          > > as multiple 'http' sessions may end up using the same set of beans which
          > > make up our own 'application defined'
          > > session. As the set of beans making up one session are typically located
          > > on the same host, we'd like to make sure
          > > that all requests using them are processed on the respecting host.
          > >
          > > I understand now that performing some kind of 'servlet-chaining' in
          > > order to forward a request to the correct host
          > > is a bad idea. Our current solution is to wrap the processing of the
          > > request into a ejbean which is made available
          > > throughout the cluster by adding a reference into the jndi tree (using
          > > the beans allows us to ensure that sessions time
          > > out when necessary.) What i don't like about this approach is that there
          > > is no way to write a simple servlet or jsp
          > > pages as direct access to the servlet interface is lost (a copy of the
          > > servlet-related data could be sent to the bean
          > > on remote host, but that's expensive and ends up in something similar to
          > > servlet-chaining.)
          > >
          > > Does any know of possibilities to solve this problem a little bit more
          > > elegantly? Essentially i'd like to run servlet and
          > > jsp pages on top of our 'application defined' sessions, efficiently
          > > working in a cluster.
          > >
          > > Thanks a lot for any suggestions,
          > > roman
          

Similar Messages

  • JSP Custom tag not working correctly for multiple users

    I am doing some support work for an existing web system. When doing single user access (a custom tag is called within the JSP); the output of the Custom tag is fine. However, during multiple user access to the JSP, as I could see on the log files, 2 users access the custom tag at exactly the same time- the output of one of the users was incorrect. The custom tag btw, uses TreeMap, Stringbuffer and does not have a body, only attributes passed to it. It takes an input file and a Hashmap as input attributes and it sets a string in the page context which is later being used in the JSP. No error is logged, its just that the string produced(placed in the page context) is incorrect. This only happens when this tag is called at same time(when multiple users accessing the page) Has anyone encountered this problem? Is there a known pooling/thread problem with custom tags?

    in a servlet/jsp (a jsp is compiled into a servlet),
    the class atrributes are shared. only the
    variables declared in the doservice (doGet or doPost)
    method are threadsafe.
    post your jsp plzhere's the snippet of the jsp code:
    <%@ page language="java"
    errorPage="Error.jsp"
    autoFlush="false"
    buffer="128kb"
    import="java.text.*,
    java.math.BigDecimal,
    java.rmi.RemoteException,
    java.util.*,
    java.io.*,
    %>
    <%@ include file="Secure.jsp" %>
    // a set of request.getParameter are being called here
    HashMap myMap = new HashMap();
    myMap.put(xmlDPhoneNumber, dPhoneNumber);
    myMap.put(xmlDPhoneType, "D");
    myMap.put(xmlDPhoneExt, dExtension);
    myMap.put(xmlDPhoneDigits, dPhoneDigits);
    // other myMap putting of key values are called here
    %>
    <test:applyCustomerSearchValues id="resultXml" xmlTemplate="/xml/message/CustomerUpdateRequest.xml"
    xmlMap="<%= myMap %>" />
    <test:transformXMLString id="customerUpdateRequest"
    xmlString="<%= resultXml.toString() %>"
    xslFileName="/xsl/message/CustomerCreateRequest.xsl"
    paramMap="<%= PMap %>"/>
    now here's the thing: the xml produced by test:applyCustomerSearchValues is resultXml which is used in test:transformXMLString. I got no problem with the output of test:transformXMLString. I am sure that a phone number is being passed into the former as part of the HashMap key-value. However when test:applyCustomerSearchValues is called when 2 users access the jsp, it seems like the the first xml produced does not have the phone number in it - but the other has it. The xml is OK for both users, its just that the values of the HashMap do not seem to be passed correctly into the xml produced.
    --- here's the snippet of the log, the first httpWorkerThread-80-6 does not have the phone number, however the second one-httpWorkerThread-80-7 has the phone number. The first one should also have a phone number as in the start of the log, the number was listed, but as the system called the test:applyCustomerSearchValues tag, the number was not included. There are different phone numbers for the 2 users. The odd thing here is, the userID which is the 'LastUpdatedBy' element has been set correctly. The userID is being fetched from a session attribute while the phone number is fetched from a request parameter, both are being placed in the HashMap attribute passed to the custom tag.
    2007-06-05 10:55:41,954 DEBUG [httpWorkerThread-80-6] (?:?) - ApplyCustomerSearchValuesTag : String produced is :<Values><Customer>
    <Status>
         <CustomerType></CustomerType>
         <FirstContactDate>2007-06-05</FirstContactDate>
         <StatusFlags>
              <Fraud>N</Fraud>
              <BadCheck>N</BadCheck>
              <BadCredit>N</BadCredit>
              <DoNotMerge>N</DoNotMerge>
              <ARHoldRefundCheck>N</ARHoldRefundCheck>
         </StatusFlags>
         <LastUpdatedDateTime>2007-06-05 10:55:41</LastUpdatedDateTime>
         <LastUpdatedBy>5555</LastUpdatedBy>
         <OPAlertClass></OPAlertClass>
         <MailListStoreID></MailListStoreID>
         <OriginatingSource>CSA</OriginatingSource>
    </Status>
    <DPhone id="D">
         <DPhoneNumber></DPhoneNumber>
         <DPhoneDigits></DPhoneDigits>
         <DPhoneType></DPhoneType>
         <DExtension></DExtension>
         <DAreaCode></DAreaCode>
         <DPhoneCountryCode></DPhoneCountryCode>
    </DPhone>
    </Customer>
    </Values>
    2007-06-05 10:55:41,954 DEBUG [httpWorkerThread-80-7] (?:?) - ApplyCustomerSearchValuesTag : String produced is :<Values><Customer>
    <Status>
         <CustomerType>N</CustomerType>
         <FirstContactDate>2007-06-05</FirstContactDate>
         <StatusFlags>
              <Fraud>N</Fraud>
              <BadCheck>N</BadCheck>
              <BadCredit>N</BadCredit>
              <DoNotMerge>N</DoNotMerge>
              <ARHoldRefundCheck>N</ARHoldRefundCheck>
         </StatusFlags>
         <LastUpdatedDateTime>2007-06-05 10:55:41</LastUpdatedDateTime>
         <LastUpdatedBy>1840</LastUpdatedBy>
         <OPAlertClass></OPAlertClass>
         <MailListStoreID></MailListStoreID>
         <OriginatingSource>CSA</OriginatingSource>
    </Status>
    <DPhone id="D">
         <DPhoneNumber>(123) 123-4788</DPhoneNumber>
         <DPhoneDigits>1231234788</DPhoneDigits>
         <DPhoneType>D</DPhoneType>
         <DExtension></DExtension>
         <DAreaCode>123</DAreaCode>
         <DPhoneCountryCode>US</DPhoneCountryCode>
    </DPhone>
    </Customer>
    </Values>
    Message was edited by:
    Mutya

  • Connection Pooling and JSP Custom Tag Library - is code (inside) the best way/correc?

    Hi, can anyone advise as to whether my tag library code (based
    on Apache Jakarta Project) will actually achieve connection
    pooling functionality across my entire JSP based application? I
    am slightly concerned that my OracleConnectionCacheImpl object
    may exist multiple times, hence rendering my conection pooling
    attempt useless.
    package com.solved.tag.dbtags.connection;
    import java.io.IOException;
    import java.sql.Connection;
    import java.sql.SQLException;
    import javax.servlet.jsp.tagext.TagSupport;
    import javax.servlet.jsp.JspTagException;
    import javax.sql.DataSource;
    import javax.naming.InitialContext;
    import javax.naming.NamingException;
    import oracle.jdbc.pool.OracleConnectionCacheImpl;
    * <p>JSP tag connection, used to get a
    * java.sql.Connection object.</p>
    * <p>JSP Tag Lib Descriptor
    * <pre>
    * &lt;name>connection&lt;/name>
    &lt;tagclass>com.solved.tag.dbtags.connection.ConnectionTag&lt;/t
    agclass>
    * &lt;bodycontent>JSP&lt;/bodycontent>
    &lt;teiclass>com.solved.tag.dbtags.connection.ConnectionTEI&lt;/t
    eiclass>
    * &lt;info>Opens a connection based on a jndiName.&lt;/info>
    * &lt;attribute>
    * &lt;name>id&lt;/name>
    * &lt;required>true&lt;/required>
    * &lt;rtexprvalue>false&lt;/rtexprvalue>
    * &lt;/attribute>
    * </pre>
    * @author Matt Shannon
    public class ConnectionTag extends TagSupport {
    static private OracleConnectionCacheImpl cache = null;
    public int doStartTag() throws JspTagException {
    try {
    Connection conn = null;
    if (cache == null) {
    try {
    InitialContext ic = new InitialContext();
    DataSource ds = (DataSource) ic.lookup
    ("jdbc/pool/OracleCache");
    cache = (OracleConnectionCacheImpl)ds;
    catch (NamingException ne) {
    throw new JspTagException(ne.toString());
    conn = cache.getConnection();
    pageContext.setAttribute(getId(),conn);
    catch (SQLException e) {
    throw new JspTagException(e.toString());
    return EVAL_BODY_INCLUDE;
    package com.solved.tag.dbtags.connection;
    import java.sql.Connection;
    import java.sql.SQLException;
    import javax.servlet.jsp.tagext.TagSupport;
    * <p>JSP tag closeconnection, used to close the
    * specified java.sql.Connection.<p>
    * <p>JSP Tag Lib Descriptor
    * <pre>
    * &lt;name>closeConnection&lt;/name>
    &lt;tagclass>com.solved.tag.dbtags.connection.CloseConnectionTag&
    lt;/tagclass>
    * &lt;bodycontent>empty&lt;/bodycontent>
    * &lt;info>Close the specified connection. The "conn"
    attribute is the name of a
    * connection object in the page context.&lt;/info>
    * &lt;attribute>
    * &lt;name>conn&lt;/name>
    * &lt;required>true&lt;/required>
    * &lt;rtexprvalue>false&lt;/rtexprvalue>
    * &lt;/attribute>
    * </pre>
    * @author Matt Shannon
    * @see ConnectionTag
    public class CloseConnectionTag extends TagSupport {
    private String _connId = null;
    * The "conn" attribute is the name of a
    * page context object containing a
    * java.sql.Connection.
    * @param connectionId
    * attribute name of the java.sql.Connection to
    close.
    * @see ConnectionTag
    public void setConn(String connectionId) {
    _connId = connectionId;
    public int doStartTag() {
    try {
    Connection conn = (Connection)pageContext.getAttribute
    (_connId);
    conn.close();
    } catch (SQLException e) {
    // failing to close a connection is not fatal
    e.printStackTrace();
    return EVAL_BODY_INCLUDE;
    public void release() {
    _connId = null;
    package com.solved.tag.dbtags.connection;
    import javax.servlet.jsp.tagext.TagData;
    import javax.servlet.jsp.tagext.TagExtraInfo;
    import javax.servlet.jsp.tagext.VariableInfo;
    * TagExtraInfo for the connection tag. This
    * TagExtraInfo specifies that the ConnectionTag
    * assigns a java.sql.Connection object to the
    * "id" attribute at the end tag.
    * @author Matt Shannon
    * @see ConnectionTag
    public class ConnectionTEI extends TagExtraInfo {
    public final VariableInfo[] getVariableInfo(TagData data)
    return new VariableInfo[]
    new VariableInfo(
    data.getAttributeString("id"),
    "java.sql.Connection",
    true,
    VariableInfo.AT_END
    data-sources.xml:
    <?xml version="1.0"?>
    <!DOCTYPE data-sources PUBLIC "Orion data-
    sources" "http://xmlns.oracle.com/ias/dtds/data-sources.dtd">
    <data-sources>
    <data-source
    class="oracle.jdbc.pool.OracleConnectionCacheImpl"
    name="jdbc/pool/OracleCache"
    location="jdbc/pool/OracleCache"
    url="jdbc:oracle:thin:@oracle1:1521:pdev"
    >
    <property name="maxLimit" value="15" />
    <property name="cacheScheme" value="2" />
    <property name="user" value="console" />
    <property name="password" value="console" />
    <description>
    This DataSource is using an Oracle-native DataSource Class so as
    to allow Oracle Specific extensions.
    A getConnection() call on this DataSource will return
    oracle.jdbc.driver.OracleConnection.
    The connection returned is a logical connection.
    The caching scheme in place is Fixed Wait. Refer below to
    possible values.
    Dynamic 1
    Fixed Wait 2
    Fixed Return Null 3
    </description>
    </data-source>
    </data-sources>
    many thanks,
    Matt.

    Hi. Show me your pool definition.
    Joe
    Ramamurthy wrote:
    I am using the jsp custom tag library from BEA called sqltags.tld which came with Weblogic 5.1. Currently I am using Weblogic6.1 sp2 on Solaris.
    I have created a Connection Pool for Sybase database using the driver com.sybase.jdbc.SybDriver.
    When I created jsp page to connect to the connection pool using sqltags custom tag library, I am getting the error
    "javax.servlet.jsp.JspException: Failed to write body content
    at weblogic.taglib.sql.ConnectionTag.doAfterBody(ConnectionTag.java:43)
    at jsp_servlet.__hubwcdata._jspService(__sampletest.java:1014)"
    After this message, whenever I try to access the same jsp page I am getting the message
    "javax.servlet.jsp.JspException: Failed to load JDBC driver: weblogic.jdbc.pool.D
    river
    at weblogic.taglib.sql.ConnectionTag.doStartTag(ConnectionTag.java:34)
    at jsp_servlet.__hubwcdata._jspService(__sampletest.java:205)".
    Can you please help me the reason why this problem is happening and how to fix this ?
    This problem doexn't happen consistently. This occurs once in a while.
    I tried to increase Login delay Seconds parameter in the Connection Pool to 15 sec. It didn't help me much.
    Thanks for your help !!!
    Ram

  • Login JSP losing Session

    I have a Login JSP which talks to a Servlet which then passes the login request to a Bean. In the Bean I save the login information in the Session, if the login fails I am trying to 'forward' to the Login JSP page again. On the Login JSP there is an 'errorText' field that gets the errorText Property from my Bean. However, when the 'getErrorText' method is called by the JSP I seem to have a new Session and have lost all of my login information.
    What have I done wrong ? I have tried setting the 'scope' of the Login JSP to session and the application but with no result.
    How can I ensure that when I re-display the Login JSP with an error message on it that I am using the Session (and copy of my bean) that I had when I set the properties ?
    Sarah.

    have the code for setting the session values in the servlet that comes after the JSP login page.
    in the jsp login page try to retreive the session values for the user name and the password.
    store these values in the name and password variables.
    for the first time it'll be null and an exception will be thrown. so in the catch block, set the value of the name variable and the password to null string ie "" and set these values as the values of the textfields (for user name and password). also in the catch block, set the error message string also . this one u can use to display when u r redirected to the JSP login page by the servlet. if first time, then set it to null string "".
    but assuming that the JSP page has been called from the servlet when an error occured i.e when the server cannot recognize the user name and password combination, the session variables for the user name and the password won't be null and u can use these values to be displayed in the respective textfields.
    so when the user name and password cannot be recognized by the server, just call the same JSP login page.
    hope that clears a bit of ur doubt!!
    rgds
    JP

  • Using gateway'd URLs in JSP custom tag attributes

    Hello,
    I am running Plumtree G6 using a gateway prefix to gateway Javascript from a remote server. I have recently discovered, thanks to people's help on the forum here, that in certain cases, you need to wrap a URL in a pt:url tag in order for Plumtree to recognize it as a URL that has to be gateway'd (i.e. a URL inside of a Javascript function).
    However, I have a custom tag that contains a contextPath attribute. This custom tag then includes other XML files that get included in the final page that is displayed. I am passing this value as my contextPath:
    <mytag:body sessionName="mysession" campusName="SampleCampus" contextPath="<pt:url pt:href='http://localhost:7021/application/scripts' xmlns:pt='http://www.plumtree.com/xmlschemas/ptui/'/>"/>
    However, in the resulting content that is created from this custom tag, the contextPath value is still set to <pt:url pt:href=......./>, and not the actual gateway'd URL. I would have thought that Plumtree would have recognized and gateway'd this URL before it got substituted in the custom tag.
    Does anyone have any thoughts on how to get around a problem like this? One thought I had was to get ahold of the gateway URL value and pass that value directly in my contextPath attribute. Is it possible to get that gateway value, or is there a better solution here?
    Thanks again for any help you can provide.

    Chris,
    I added your code, changed the portlet's web service to send a login token for this portlet, and was then getting some ClassNotFoundExceptions related to Axis classes. So, I went and added all of the jar files from the devkit's lib directory (i.e. plumtree\ptedk\5.3\devkit\WEB-INF\lib), recompiled, and those errors went away. But, now I see the following error:
    java.lang.NoSuchFieldError: RPC
         at com.plumtree.remote.prc.soap.QueryInterfaceAPISoapBindingStub.(QueryInterfaceAPISoapBindingStub.java:27)
         at com.plumtree.remote.prc.soap.QueryInterfaceAPIServiceLocator.getQueryInterfaceAPI(QueryInterfaceAPIServiceLocator.java:43)
         at com.plumtree.remote.prc.soap.QueryInterfaceProcedures.(QueryInterfaceProcedures.java:37)
         at com.plumtree.remote.prc.xp.XPRemoteSession.(XPRemoteSession.java:202)
         at com.plumtree.remote.prc.xp.XPRemoteSessionFactory.GetTokenContext(XPRemoteSessionFactory.java:80)
         at com.plumtree.remote.portlet.xp.XPPortletContext.getRemotePortalSession(XPPortletContext.java:261)
         at com.plumtree.remote.portlet.PortletContextWrapper.getRemotePortalSession(PortletContextWrapper.java:45)
         at jsp_servlet._collabrasuite.__riarooms._jspService(__riarooms.java:325)
         at weblogic.servlet.jsp.JspBase.service(JspBase.java:33)
         at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1006)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
         at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:417)
         at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:315)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6718)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
         at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3764)
         at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2644)
         at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
    I am using version 5.3 of the EDK, and running Plumtree Foundation G6. Have you ever seen an error like this before?
    Thanks again for all of your help.

  • Servlets - problem with session

    Hi there ppl,
    I have a login servlet which is called form a link in a static html page. The doGet() method is as below:
    public void doGet(HttpServletRequest request,
              HttpServletResponse response)
         throws ServletException, java.io.IOException
         HttpSession session = public void doGet(HttpServletRequest request,
                                  HttpServletResponse response)
                                  throws ServletException, java.io.IOException
              HttpSession session = request.getSession(false);
              RequestDispatcher rd = request.getRequestDispatcher("/login.jsp");
              response.setContentType("text/html");
              //PrintWriter out = response.getWriter();
              if(session != null){
                   //display members page(with users name as a welcome)
                   System.out.println("in login servletb");
              else{
                   System.out.println("in login servlet");
                   request.setAttribute("membersName", "adom");
                   rd.forward(request, response);
                   //out.close();
         RequestDispatcher rd = request.getRequestDispatcher("/login.jsp");
         if(session != null){
         //display members page(with users name as a welcome)
         System.out.println("session exists");
         else{
         System.out.println("session not exisit");
         request.setAttribute("membersName", "adom");
         rd.forward(request, response);
    Problem is when i click on the link in the html page it goes into tthe else statement and displays the login.jsp page fine. But when i click bak on the browser and then click the link agian it goes into the if statemtn..as if a session exists. But why does a session exisit???...if i use request.getSession(false) this shouldnt create a session if one doent already exists so where is this mysterious session being created??
    any ideas would be greatly appreaciated
    Mycall

    yer i do need the session because in my doPost() method of the servlet i create a session once the user logs on with there login/pass. The doGet() method is only to direct the person to the login page. But i want to check for the session in the doGet() incase they have already login in...if so direct them to the main page rather than to the login page agian.
    I stuffed up the code in my previous post...everything compiles and works fine apart from the fact that a session is created when it shouldnt be. I did a test println with session.getCreationTime() and it was created the same time the servlet was initial called. However im not sure if it was created by my servlet or if the broswer somehow had something to do with it....hmm is a worry.
    Heres the code again...hopefully a bit neater for u :D
    public void doGet(HttpServletRequest request, HttpServletResponse reponse)throws ServletException, java.io.IOException{
    HttpSession session = request.getSession(false);
    RequestDispatcher rd = request.getRequestDispatcher("/login.jsp");
    if(session != null){
    //display members page(with users name as a welcome)
    System.out.println("session exists");
    else{
    System.out.println("no session");
    request.setAttribute("membersName", "adom");
    rd.forward(request, response);
    thanks agian :)

  • How to solve javax.servlet.jsp.JspException: duplicate Id for a component?

    Dear everyone,
    I have built some customized JSF components. In the taglib, there is attribute "id" for my components. There is no problem when the page is run, but when I click submit button, there are errors.
    javax.servlet.jsp.JspException: duplicate Id for a component form1:dojoComboBox1     at com.sun.faces.taglib.jsf_core.ViewTag.doAfterBody(ViewTag.java:191)     at _andychun._jspService(_andychun.java:190)     [andychun.jsp]     at com.orionserver[Oracle Containers for J2EE 10g (10.1.3.1.1) ].http.OrionHttpJspPage.service(OrionHttpJspPage.java:59)     at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:462)     at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:598)     at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:522)
    Please kindly help solve this problem. Thank you.
    Best Regards,
    David

    Alex,
    my guess is that because you copied content from the
    first page to the next, you created JSF components
    with the same ID. JSF components must have unique IDs
    though.
    FrankHello Frank,
    Thanks for your reply. The thing is in the first page I do not have much id's specified/defined. And in the second page what I did was to take out all id's to see if it was conflicting. When I tried it again I still got the error. So the id's are being generated automatically if seems.
    Also is it that JSF components should have unique id's for a particular page or all pages in the JSF application?
    Any other sugguestions. I hope you understand what I am saying. If you have any questions or uncertainties fell free to ask me.
    Thanks,
    Alex.

  • Javax.servlet.jsp.JspException: Can't insert page '/common/MenuFiles.jsp' :

    Hi,
    I am using WebLogic 11g.
    In my application am getting following exception in my console
    ####<Jun 4, 2012 2:03:47 AM CDT> <Error> <HTTP> <cuscmas1.hillscte.com> <AdminServer> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1338793427049> <BEA-101017> <[ServletContext@2141448872[app:amsatms module:/paws path:/paws spec-version:null]] Root cause of ServletException.
    javax.servlet.jsp.JspException: Can't insert page '/common/MenuFiles.jsp' : Connection reset
    at org.apache.struts.taglib.tiles.InsertTag$InsertHandler.processException(InsertTag.java:956)
    at org.apache.struts.taglib.tiles.InsertTag$InsertHandler.doEndTag(InsertTag.java:884)
    at org.apache.struts.taglib.tiles.InsertTag.doEndTag(InsertTag.java:473)
    at jsp_servlet._tdms._common.__tdmspage._jsp__tag1(__tdmspage.java:530)
    at jsp_servlet._tdms._common.__tdmspage._jspService(__tdmspage.java:427)
    at weblogic.servlet.jsp.JspBase.service(JspBase.java:34)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
    Previously I was used OC4J, in that I didnt get any error.
    My MenuFiles.jsp is
    <%@ page import="com.hillspet.atms.common.constants.IATMSConstants" %>
    <%@ page import="com.hillspet.atms.common.constants.AnimalConstants" %>
    <%@ page import="com.hillspet.atms.common.constants.IATMSAccessConstants" %>
    <%@ page import="com.hillspet.atms.collectionkit.util.ICollectionKitConstants" %>
    <%@ page import="com.cte.common.IConstants" %>
    <%@ page import="com.cte.common.dto.UserDTO,com.hillspet.atms.common.util.ATMSUtil" %>
    <%@ page import="java.util.ArrayList" %>
    <%@page import="com.hillspet.ahms.animal.util.IAHMSAccessConstants,com.hillspet.admin.common.util.HillspetUtil, com.hillspet.ahms.animal.dto.AnimalBaseDTO"%>
    <%@page import="com.hillspet.ahms.animal.util.IAHMSAccessConstants,com.hillspet.admin.common.util.HillspetUtil, com.hillspet.ahms.animal.dto.AnimalBaseDTO"%>
    <%@ page import="com.cte.common.dto.UserDTO, com.cte.common.IConstants,     com.hillspet.admin.common.util.HillspetUtil, java.util.ArrayList, com.cte.common.ums.dto.RoleListEntryDTO,java.util.Arrays,java.util.Collections"%>
    <%@page import="com.hillspet.tdms.common.util.ITLMSAccessConstants,com.hillspet.admin.common.util.HillspetUtil"%>
    <%
    boolean isInternal = false;
    if(session.getAttribute("ANIMAL_BASE_DTO")!=null ){
         AnimalBaseDTO animalSummaryDetailsDTO = (AnimalBaseDTO) session.getAttribute("ANIMAL_BASE_DTO");
         if(animalSummaryDetailsDTO.getIsExternal()==0){
              isInternal = true;
    %>
    <%
    UserDTO dto = (UserDTO) session.getAttribute(IConstants.USER_OBJECT);
         ArrayList userPermissionsList = dto.getUserPermissionList();
    boolean isAdmin = dto.getRoleList().contains("" + IATMSConstants.ATMS_ADMIN_ROLE_ID);
    //System.out.println("User Permission list is :" + dto.getUserPermissionList());
         java.util.ArrayList rolesList = dto.getRoleList();
         boolean isEUUser = HillspetUtil.checkEUAccess(request, dto);
         ArrayList atmsRolesList=new ArrayList(Arrays.asList ("126","125","109","108","107","106","105","114","103","102","101","100","99","98","97","96","95","93","90","89","88","87","86","67","111","85","83","73","84","116","113", "127","128","130","132","133","134","135","136"));
    boolean displayATMSMenus = !Collections.disjoint(rolesList, atmsRolesList);
    %>
    <script>
         var breadcrumb = "<%=IATMSConstants.SEARCH_AND_VIEW%>";
    Initialize and render the MenuBar when its elements are ready
    to be scripted.
    YAHOO.util.Event.onContentReady("vmenu", function () {
    Instantiate a MenuBar: The first argument passed to the
    constructor is the id of the element in the page
    representing the MenuBar; the second is an object literal
    of configuration properties.
    var oMenuBar = new YAHOO.widget.MenuBar("vmenu", {
    autosubmenudisplay: true,
    hidedelay: 750,
    lazyload: true });
    Define an array of object literals, each containing
    the data necessary to create a submenu.
    var aSubmenuData = [
                        <%
                                  if(rolesList.contains("67") || rolesList.contains("84") || rolesList.contains("118") || rolesList.contains("111") || rolesList.contains("90") || rolesList.contains("83") || rolesList.contains("85") || rolesList.contains("88") || rolesList.contains("82") || displayATMSMenus){
                        %>
    id: "Tab1",
    itemdata: [
    <%if(HillspetUtil.checkAccess(request,IAHMSAccessConstants.CREATE_ANIMNAL_PERMISSION)) {%>
    { text: "Add Animal", url: "addAnimalGeneralInfoAction.do" },
                                            <%}%>
                                                      <%if(HillspetUtil.checkAccess(request,IAHMSAccessConstants.CREATE_ANIMNAL_PERMISSION)) {%>
    { text: "Record Manual Feeding", url: "saveChangeDietAction.do?command=view",disabled:true },
                                                 <%}%>
                                                 <%if(HillspetUtil.checkAccess(request,IAHMSAccessConstants.SEARCH_ANIMNAL_PERMISSION)) {%>
                                       { text: "Search Animals", url: "animalSearchAction.do?command=view" },
                                            <%}%>
                                       <%if(HillspetUtil.checkAccess(request,IAHMSAccessConstants.SEARCH_IMAGES)) {%>
                                       { text: "Search Images",url: "animalImageSearchAction.do?command=view" },
                                       <%}%>
                                       <%if(HillspetUtil.checkAccess(request,IAHMSAccessConstants.SEARCH_IMAGES)) {%>
                                       { text: "Capture Images",url: "captureImageAction.do?command=view" },
                                       <%}
                                       if(!rolesList.contains("95") && !rolesList.contains("98")){ %>
                                            { text: "Animal Panels", url: "animalpanelList.do?command=view&searchFlag=fromMenu" },
    <% }
                                            if (dto.getUserPermissionList().contains(
    AnimalConstants.AR_RECOMMEND_ANIMALS_PERMISSION)|| dto.getUserPermissionList().contains(
    AnimalConstants.AR_VIEW_LIST_OF_RECOMMENDATION_PERMISSION)) {
    %>
                   { text: "Animal Recommendation",
    submenu: {
    id: "subtab11",
    itemdata: [
    <%
    if (dto.getUserPermissionList().contains(AnimalConstants.AR_RECOMMEND_ANIMALS_PERMISSION)) {
    %>
    { text: "Recommend Animals", url: "recommendedAnimal.do?command=view" },
    //{ text: "Reserve / Un-reserve", url: "../ATMS/reserveUnreserve.html"},
    <%}%>
    <%
                                            if (dto.getUserPermissionList().contains(
    AnimalConstants.AR_RECOMMEND_ANIMALS_PERMISSION)|| dto.getUserPermissionList().contains(
    AnimalConstants.AR_VIEW_LIST_OF_RECOMMENDATION_PERMISSION)) {
    %>
    { text: "View Recommendations", url: "recommendedAnimalList.do?command=view"},
    <%}%>
                        <%} else {%>
                             { text: "Animal Recommendation", url: "#" , disabled: true},
                             <%}%>
                                       { text: "Move Animal",
                                       submenu: {
    id: "subtab15",
    itemdata: [
                                                                <% if( isInternal ){%>
    { text: "Change Location", url: "manageAnimalLocationAction.do?command=viewHistory" },
                                                                <%}%>
    <%if(HillspetUtil.checkAccess(request,IAHMSAccessConstants.ANML_DISPOSITION_PERMISSION)) {%>
                                                                { text: "Adoption Record", url: "animalDispositionAction.do?command=view" },
                                                                <%}%>
    id: "Tab2",
    itemdata: [
                                       <%if(HillspetUtil.checkAccess(request,IAHMSAccessConstants.SCHEDULE_FMT)) {%>
    { text: "Schedule Facility Maintenance Task ", url: "scheduleFMTActionForward.do?command=forward", disabled: false },
                                            <%}%>
                                       <%if(HillspetUtil.checkAccess(request,IAHMSAccessConstants.SCHEDULE_GROUP_TASK) || rolesList.contains("99")) {%>
                                       { text: "Schedule Task", url: "groupTaskSearchAction.do?command=view" },
                                       <% } %>
                                       { text: "Daily Task List",
                                       submenu: {
    id: "subtab21",
    itemdata: [
                                                                { text: "Animal Care Task", url: "viewDailyTaskListAction.do?command=view&id=1&actSubTab=1"},
                                       <%if(userPermissionsList.contains(IATMSConstants.SMCL_VIEW_SAMPLES)){%>
                                                      <%if(userPermissionsList.contains(IATMSConstants.SMCL_VIEW_SAMPLES)){%>
                                                      { text: "Test Collections", url: "viewSMSmpleCollections.do?command=view&identifier=fromMenu" },
                                                      <% } %>
                                                      <%if(userPermissionsList.contains(IATMSConstants.SMCL_VIEW_SAMPLES)){%>
                                                      { text: "Health Collections", url: "viewBioHealthSmplCollections.do?command=view&identifier=fromMenu" },
                                                      <%}%>
                                       <%}%>
                                                           <%if(HillspetUtil.checkAccess(request,IAHMSAccessConstants.DAILY_TASK_LIST_MEDICAL_TESTS)) {%>
    { text: "Medical Test", url: "viewDailyTaskListAction.do?command=view&id=2"},
    <%}%>
                                                           <%if(HillspetUtil.checkAccess(request,IAHMSAccessConstants.DAILY_TASK_LIST_MEDICAL_EXAMS)) {%>
                                                                { text: "Medical Exams", url: "viewDailyTaskListAction.do?command=view&id=3"},
                                                                     <%}%>
                                                                { text: "Status Phenotype", url: "viewDailyTaskListAction.do?command=view&id=6"},
                                                                { text: "Surgery/Procedure", url: "viewDailyTaskListAction.do?command=view&id=4"},
                                                                { text: "Facility Maintenance ",submenu: {
                             id: "subtab777",itemdata: [
                                                                          { text: "Facility Maintenance Task",url: "viewDailyTaskListAction.do?command=view&id=5" },
                                                                          { text: "Search FMT Images",url: "searchFMTImageAction.do?command=view" }]
                                                                { text: "Record Group ACTs", url: "RecordWeightFecalScoreAction.do?command=view"},
                                       { text: "Administer Medication", url: "recordMedicationAdministrationAction.do?command=forward" },
                                            <%if(HillspetUtil.checkAccess(request,IAHMSAccessConstants.RECORD_OBSERVATION_PERMISSION)) {%>
                                       { text: "Observations",
                                                 submenu: {
    id: "subtab222",
    itemdata: [
                                                                { text: "Search Observations",url: "recordObservationsAction.do?command=view" },
                                                                { text: "Record Observations",url: "addAnimalObservationAction.do?command=add&page=record&source=monitor" },
                                       <%}%>
                                       { text: "Shared Feed Diet Assignment", url: "RecordWeightFecalScoreAction.do?command=viewDefaultDiet" },
                                       <%if(HillspetUtil.checkAccess(request,IATMSAccessConstants.TRCL_PRINT_LABELS_LIST) || HillspetUtil.checkAccess(request,IATMSAccessConstants.HRCL_PRINT_LABELS_LIST)) {%>
                                       { text: "Print Labels",
                                       submenu: {
    id: "subtab211",
    itemdata: [
                                                                <%if(HillspetUtil.checkAccess(request,IATMSAccessConstants.TRCL_PRINT_LABELS_LIST)) {%>
                                                                { text: "Test Collections", url: "printLabelsAction.do?command=viewTests"},
                                                                <%}%>
                                                                <%if(HillspetUtil.checkAccess(request,IATMSAccessConstants.HRCL_PRINT_LABELS_LIST)) {%>
    { text: "Health Collections", url: "printLabelsAction.do?command=viewHealthCols"},
                                                                <%}%>
                                       <%}%>
                                       //{ text: "Controlled Drug Inventory", url: "#" , disabled: true},
                             <%}%>
    <%if(HillspetUtil.checkAccess(request,IATMSAccessConstants.SM_RECIEVE_SAMPLES )||
                                       HillspetUtil.checkAccess(request,IATMSAccessConstants.SM_RECIEVE_HEALTH_SAMPLES) || dto.getRoleList().contains("85") || dto.getRoleList().contains("111") || !dto.getRoleList().contains("123") && !dto.getRoleList().contains("82") ) {%>
    id: "Tab3",
    itemdata: [
    { text: "Sample Management",
    submenu: {
    id: "subtab41",
    itemdata: [
                                       <%if(HillspetUtil.checkAccess(request,IATMSAccessConstants.SM_RECIEVE_SAMPLES )||
                                       HillspetUtil.checkAccess(request,IATMSAccessConstants.SM_RECIEVE_HEALTH_SAMPLES) || dto.getRoleList().contains("85") || dto.getRoleList().contains("111") || !dto.getRoleList().contains("131") ) {%>
    { text: "Samples Pending Receipt",
                                            submenu: {
                                                 id: "subtabRecieve",
                                                      itemdata: [
                                                           <%if(HillspetUtil.checkAccess(request,IATMSAccessConstants.SM_RECIEVE_SAMPLES)) {%>
                                                      { text: "Biological Test Collections", url: "fetchLabLocationDetailsAction.do?command=forward" , disabled: false},
                                                      <%}%>
                                                           <%if(HillspetUtil.checkAccess(request,IATMSAccessConstants.SM_RECIEVE_HEALTH_SAMPLES) || dto.getRoleList().contains("85") || dto.getRoleList().contains("111")) {%>
                                                      { text: "Biological Health Collections", url: "recieveTestSamplesAction.do?command=forward" , disabled: false},
                                                      <%}%>
                                                      <%if(!dto.getRoleList().contains("706")) {%>
                                                      { text: "Non Biological Collections", url: "receiveNonBiologicalSamplesAction.do?command=viewNBSamples"}
                                                      <% } %>
                                            <%}%>
    <%
    if(HillspetUtil.checkAccess(request,IATMSAccessConstants.LAB_SM_VIEW_RECEIVED_NON_BIO_SMPLS)||HillspetUtil.checkAccess(request,IATMSAccessConstants.SM_RECIEVED_HEALTH_SAMPLES) || HillspetUtil.checkAccess(request,IATMSAccessConstants.SM_RECIEVED_TEST_SAMPLES) || dto.getRoleList().contains("85") || dto.getRoleList().contains("111")) {%>
    { text: "Samples Received",
                                            submenu: {
                                                 id: "subtabRecieved",
                                                      itemdata: [
    <%
    if(HillspetUtil.checkAccess(request,IATMSAccessConstants.SM_RECIEVED_TEST_SAMPLES) || dto.getRoleList().contains("85") || dto.getRoleList().contains("111")) {%>
                                                      { text: "Biological Test Collections", url: "recievedTestSamplesAction.do?command=forward" , disabled: false},
    <%}%>
    <%
    if(HillspetUtil.checkAccess(request,IATMSAccessConstants.SM_RECIEVED_HEALTH_SAMPLES) || dto.getRoleList().contains("85") || dto.getRoleList().contains("111") ) {%>
                                                      { text: "Biological Health Collections", url: "receivedBioTestSamplesAction.do?command=forward" , disabled: false},
    <%}%>
    <%
    if(HillspetUtil.checkAccess(request,IATMSAccessConstants.LAB_SM_VIEW_RECEIVED_NON_BIO_SMPLS) ) {%>
                                                      { text: "Non Biological Collections", url: "receivedNonBiologicalSamplesAction.do?command=viewNBSamples"}
    <%}%>
    <%}%>
                                  <%if(HillspetUtil.checkAccess(request,"VIEW_SAMPLE_BATCHES") || dto.getRoleList().contains("85") || dto.getRoleList().contains("111")||dto.getRoleList().contains("706")) {%>
    { text: "Sample Batches", url: "viewSampleBatches.do?command=view" , disabled: false},
                                       <%}%>
                                       <%     if (dto.getUserPermissionList().contains("OUTSIDE_LAB_SAMPLES_LIST") || dto.getRoleList().contains("131") || dto.getRoleList().contains("706")){ %>
                   { text: "External Lab Samples", url: "outsideLabSamplesAction.do?command=view" , disabled: false},
                                       <% } %>
                             <%
                                            if (dto.getUserPermissionList().contains(
    ICollectionKitConstants.GENERATE_CK_TEMPLATE) ) { %>
                             { text: "Sample Collection Kits",
    submenu: {
    id: "subtab421",
    itemdata: [
                                       <%
                                            if (dto.getUserPermissionList().contains(
    ICollectionKitConstants.GENERATE_CK_TEMPLATE)){ %>
    { text: "Generate Collection Kits", url: "ckCreateTemplateAction.do?command=goToGenerateCkKits" , disabled: false},
                                       <% } %>
                             <%
                                            if (dto.getUserPermissionList().contains(
    ICollectionKitConstants.GENERATE_CK_TEMPLATE) ){ %>
                             { text: "Search & View", url: "ckCreateTemplateAction.do?command=goToCKSearch&fromMenu=true" },
                             <%}%>
                             <%}%>
    <%if(HillspetUtil.checkAccess(request,IATMSAccessConstants.SMIN_VIEW_SAMPLE_INVENTORY) ||
                                            HillspetUtil.checkAccess(request,IATMSAccessConstants.VIEW_FORMULA_INVENTORY) || dto.getRoleList().contains("85") || dto.getRoleList().contains("111") || dto.getRoleList().contains("131")) {%>
    { text: "Sample Information",
                                            submenu: {
                                                 id: "subtabSampleInventory",
                                                      itemdata: [
                                                      <%if(HillspetUtil.checkAccess(request,IATMSAccessConstants.SMIN_VIEW_SAMPLE_INVENTORY) || dto.getRoleList().contains("85") || dto.getRoleList().contains("111")) {%>
                                                      { text: "Biological Samples", url: "sampleInventoryAction.do?command=view" , disabled: false},
                                                      <%}%>
                                                      <%if(HillspetUtil.checkAccess(request,IATMSAccessConstants.VIEW_FORMULA_INVENTORY)) {%>
                                                      { text: "Non Biological Samples", url: "viewInventory.do?command=view&fromLab=Y" , disabled: false},
                                                      <%}%>
    <% if ( HillspetUtil.checkAccess(request,"PENDING_ANALYSIS_REQUEST_LIST") ||
              HillspetUtil.checkAccess(request,"PENDING_ANALYSIS_REQUEST_READ") ) {
    %>
    { text: "Collected Samples New Request", url: "pendingAnalysisReqAction.do?command=view" , disabled: false },
    <%}%>
                                       <%}%>
    ]

    Hi,
    actually this mapping only identifies those requests to be handled by teh JSF servlet. Its not a redirect.
    I see several namespace definitions in your page, but no taglib reference. Wondering how this is supposed to work
    <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
    <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
    <%@ taglib uri="http://xmlns.oracle.com/adf/faces/html" prefix="afh"%>
    <%@ taglib uri="http://xmlns.oracle.com/adf/faces" prefix="af"%>
    I assume the next crash you will see is when you add JSF components to
    <f:view>
    <html>
    <head>
    <meta http-equiv="Content-Type"
    content="text/html; charset=windows-1252"/>
    <title>tt</title>
    </head>
    <body><h:form></h:form></body>
    </html>
    </f:view>
    Note that mixing HTML elements with JSF is not a recommended approach
    Frank

  • Java.lang.AbstractMethodError: javax.servlet.jsp.JspFactory.getJspApplicati

    Hi,
    I have an application which is executing properly in jboss 3.2.5 but as we are trying to upgrade the jboss version i am getting above mentioned error.
    The application is deployed in jboss as an ear file and the ear contains one jar file that has been removed from the ear and still i am getting this error.
    I am posting the full stack trace over here.
    ERROR [[jsp]] Servlet.service() for servlet jsp threw exception
    java.lang.AbstractMethodError: javax.servlet.jsp.JspFactory.getJspApplicationContext(Ljavax/servlet/ServletContext;)Ljavax/servlet/jsp/JspApplicationContext;
            at org.apache.jsp.Jsp.Common.logout_jsp._jspInit(logout_jsp.java:22)
            at org.apache.jasper.runtime.HttpJspBase.init(HttpJspBase.java:52)
            at org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:158)
            at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
            at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:336)
            at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
            at clime.messadmin.filter.MessAdminFilter.doFilter(MessAdminFilter.java:104)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
            at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
            at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
            at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
            at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)
            at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:524)
            at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
            at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
            at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
            at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
            at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
            at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
            at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
            at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
            at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
            at java.lang.Thread.run(Thread.java:595)It is happening in logout.jsp, but all other main jsp's are working properly ( login.jsp etc ).
    I am posting the jsp code over here.
    <html>
    <head>
           <script language="JavaScript">
         function init()  {
           window.history.forward(1);
       </script>
      </head>
    <body  onLoad="init();" >
      <%@ page language="java" %>
      <%@ page isThreadSafe="true" %>
        <%
         session.invalidate();
         response.sendRedirect("../../logout.html");
    %>
    </body>
    </html>Please guide me to solve the issue.

    evnafets wrote:
    My guess would be that you have some of the servlet classes deployed with your application.
    Yes.
    Any jar files that contain the javax.servlet.* packages should NOT be part of a web application, but are intended to be on the server.
    First up all there is no such jar files.
    Common candidates:
    servlet.jar
    servlet-api.jar
    j2ee.jar
    All those jars are in lib directory of my app server. I have jsp-api and servlet-api.jar as i am using embedded tomcat 6 in jboss appsever.
    Check the WEB-INF/lib directory of your web application to see that there are none of those there.
    Nothing similar deployed in your ear file?I have extracted my application ear , jar and war then when i checked i found one jar file inside the war but in that no servlet*.jarr files. It is my application oriented files only. I have deleted this ar files and then i executedi am getting same error. Is there any way to find out the exact issue ????.
    Regards
    Rasa

  • Database access with JSP custom tags

    i have created one file in which i am making the connection with mysql data base with con.mysql.jdbc.Driver.and usking J connector and that i'm doing with custom tag.this is the error which i'm getting in tomcat.
    and the tag handler class and TLD file and jsp file is below
    type Exception report
    message
    description The server encountered an internal error () that prevented it from fulfilling this request.
    exception
    javax.servlet.ServletException: javax.servlet.jsp.JspException: null
    org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl .java:841)
    org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.j ava:778)
    org.apache.jsp.DbTry_jsp._jspService(org.apache.jsp.DbTry_jsp:72)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:99)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:325)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:245)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    root cause
    java.lang.NullPointerException
    Try.Connect.<init>(Connect.java:26)
    sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    java.lang.reflect.Constructor.newInstance(Unknown Source)
    java.lang.Class.newInstance0(Unknown Source)
    java.lang.Class.newInstance(Unknown Source)
    org.apache.jasper.runtime.TagHandlerPool.get(TagHandlerPool.java:116)
    org.apache.jsp.DbTry_jsp._jspx_meth_db_connect_0(org.apache.jsp.DbTry_jsp:84)
    org.apache.jsp.DbTry_jsp._jspService(org.apache.jsp.DbTry_jsp:62)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:99)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:325)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:245)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    note The full stack trace of the root cause is available in the Apache Tomcat/5.5.4 logs.
    Apache Tomcat/5.5.4
    Tag handler class
    package Try;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    import javax.servlet.jsp.JspException;
    import javax.servlet.jsp.JspWriter;
    import javax.servlet.jsp.PageContext;
    import javax.servlet.jsp.tagext.TagSupport;
    import java.sql.*;
    public class Connect extends TagSupport {
    private String driver = "com.mysql.jdbc.Driver";
    private String dbtype = "mysql";
    private String host = "localhost";
    private String username = "root";
    private String password = "203131";
    private String database = "compose";
    private String scope = "page";
    private String id = "";
    JspWriter out = pageContext.getOut();
    public void setDriver(String str) {
    driver = str;
    public void setDbtype(String str) {
    dbtype = str;
    public void setHost(String str) {
    host = str;
    public void setUsername(String str) {
    username = str;
    public void setPassword(String str) {
    password = str;
    public void setDatabase(String str) {
    database = str;
    public void setScope(String str) {
    scope = str;
    public void setId(String str) {
    id = str;
    public int doStartTag() throws JspException {
    try {
    Class.forName("com.mysql.jdbc.Driver");
    String url= "jdbc:" + dbtype + "://" + host + "/" + database;
    Connection connection = DriverManager.getConnection(url,username,password);
    out.println("right ;;one");
    catch (SQLException e1) {
    System.out.println("Error in HeadingTagv: " + e1);
    catch (Exception e) {
    System.out.println("Error in HeadingTag: " + e);
    return SKIP_BODY;
    TLD is lib.tld
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE taglib
    PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
    "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_2.dtd">
    <taglib>
    <tlib-version>1.0</tlib-version>
    <jsp-version>1.2</jsp-version>
    <short-name>db</short-name>
    <display-name>Database Tags</display-name>
    <description>
    A set of tags for working with SQL database access
    </description>
    <tag>
    <name>connect</name>
    <tag-class>Try.Connect</tag-class>
    <body-content>empty</body-content>
    <description>
    </description>
    <attribute>
    <name>driver</name>
    <required>false</required>
    <rtexprvalue>true</rtexprvalue>
    <description>
    </description>
    </attribute>
    <attribute>
    <name>dbtype</name>
    <required>false</required>
    <rtexprvalue>true</rtexprvalue>
    <description>
    </description>
    </attribute>
    <attribute>
    <name>host</name>
    <required>false</required>
    <rtexprvalue>true</rtexprvalue>
    <description>
    Can be given by a run-time expression.
    Host name of the computer where database is located.
    Default is "localhost".
    </description>
    </attribute>
    <attribute>
    <name>username</name>
    <required>false</required>
    <rtexprvalue>true</rtexprvalue>
    <description>
    Can be given by a run-time expression.
    Username for logging onto the database.
    Default is "root".
    </description>
    </attribute>
    <attribute>
    <name>password</name>
    <required>false</required>
    <rtexprvalue>true</rtexprvalue>
    <description>
    Can be given by a run-time expression.
    Password for logging onto the database.
    Default is the empty string.
    </description>
    </attribute>
    <attribute>
    <name>database</name>
    <required>false</required>
    <rtexprvalue>true</rtexprvalue>
    <description>
    Can be given by a run-time expression.
    The name of the database that will be used for
    the SQL commands. Default is no database specified.
    </description>
    </attribute>
    <attribute>
    <name>id</name>
    <required>false</required>
    <description>
    </description>
    </attribute>
    <attribute>
    <name>scope</name>
    <required>false</required>
    <description>
    </description>
    </attribute>
    </tag>
    </taglib>
    JSP file is
    <%@ taglib uri="/WEB-INF/lib.tld" prefix="db" %>
    <html>
    <body>
    <db:connect username="root" password="203131" database="compose" />
    </body>
    </html>

    Answered in your other post:
    http://forum.java.sun.com/thread.jspa?threadID=608780&tstart=0

  • Error in JSP Custom Tag Program

    Hi Dear,
    when I compile my JSP Custom tag program on weblogic Its give that Error..
    Parsing of JSP File '/Home.jsp' failed: /Home.jsp(-1): cannot load TLD: weblogic.xml.dom.ChildCountException: missing child tagclass in tag
    probably occurred due to an error in /Home.jsp line -1:
    Tue Sep 09 18:46:56 GMT 2008
    My Files are:
    Home.jsp:
    <%@ taglib uri="/WEB-INF/tlds/taglib.tld" prefix="neeraj" %>
    <neeraj:hello name="Vijay">
    It is a Tag Body<br>
    </neeraj:hello>
    taglib.tld:
    <taglib>
    <tlib-version>1.0</tlib-version>
    <jsp-version>1.2</jsp-version>
    <uri>WEB-INF/tlds/taglib.tld</uri>
    <tag>
    <name>hello</name>
    <tag-class>mypack.MyTag</tag-class>
    <attribute>
    <name>name</name>
    <required>true</required>
    </attribute>
    </tag>
    </taglib>
    MyTag.java:
    package mypack;
    import javax.servlet.jsp.*;
    import javax.servlet.jsp.tagext.*;
    public class MyTag extends TagSupport
    String name;
    public void setName(String c)
    try
    name=c;
    catch(Exception e)
    count=1;
    public int doStartTag()
    return EVAL_BODY_INCLUDE;
    public int doAfterBody
    JspWriter out=pageContext.getOut();
    out.print("Good Night "+name);
    catch(Exception e)
    return EVAL_PAGE;
    web.xml:
    <web-app>
    <welcome-file-list>
    <welcome-file>/Home.jsp</welcome-file>
    </welcome-file-list>
    <taglib>
    <taglib-uri>taglib</taglib-uri>
    <taglib-location>/WEB-INF/tlds/taglib.tld</taglib-location>
    </taglib>
    </web-app>
    Please resolve my issue..

    I had the same problem. In your .tld change tagclass to tag-class and bodycontent to body-content and that should do the trick. The names slightly changed for JSP spec 1.2.
              

  • Initial problem with JSP Custom Tag devolopment

    Hi ,
    I have encountered a problem with my JSP application which utilizes a simple custom tag.
    First I created followinng directories.
    1. %TOMCAT_HOME%\webapps\testTags
    2. %TOMCAT_HOME%\webapps\testTags\META-INF
    3. %TOMCAT_HOME%\webapps\testTags\WEB-INF
    4. %TOMCAT_HOME%\webapps\testTags\WEB-INF\tlds
    5. %TOMCAT_HOME%\webapps\testTags\WEB-INF\classes
    6. %TOMCAT_HOME%\webapps\testTags\WEB-INF\classes\com
    7. %TOMCAT_HOME%\webapps\testTags\WEB-INF\classes\com\tek271
    8. %TOMCAT_HOME%\webapps\testTags\WEB-INF\classes\com\tek271\testTags
    I created the essential four files, that is named as follows.
    1.TagError.java
    2.web.xml
    3.testTld.tld
    4.testJsp.jsp
    Then i put the files under these directories as given below
    testJsp.jsp under %TOMCAT_HOME%\webapps\testTags.
    web.xml under %TOMCAT_HOME%\webapps\testTags\WEB-INF
    TagError.java under %TOMCAT_HOME%\webapps\testTags\WEB-INF\classes
    TagError.class under %TOMCAT_HOME%\webapps\testTags\WEB-INF\classes\com\tek271\testTags
    testTld.tld %TOMCAT_HOME%\webapps\testTags\WEB-INF\tlds
    Here is the content inside the files.
    1.TagError.java
    package com.tek271.testTags;
    import java.io.*;
    import javax.servlet.jsp.*;
    import javax.servlet.jsp.tagext.*;
    public class TagError extends TagSupport {
    private String mColor = "red";
    public void setColor(String aColor) {
    mColor = aColor;
    } // setColor
    public int doStartTag() throws JspException {
    try {
    JspWriter out = pageContext.getOut();
    out.print("<font color=\"");
    out.print(mColor);
    out.print("\"><b>Error: ");
    } catch (IOException ex) {
    throw new JspTagException(ex.getMessage());
    return EVAL_BODY_INCLUDE; // other return: SKIP_BODY
    } // doStartTag()
    public int doEndTag() throws JspException {
    try {
    JspWriter out = pageContext.getOut();
    out.println("</b></font><br>");
    } catch (IOException ex) {
    throw new JspTagException(ex.getMessage());
    return EVAL_PAGE; // other return: SKIP_PAGE
    } // doEndTag()
    } // TagError
    2.web.xml
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <web-app>
    <taglib>
    <taglib-uri>/testTaglib</taglib-uri>
    <taglib-location>/WEB-INF/tlds/testTld.tld</taglib-location>
    </taglib>
    </web-app>
    3.testTld.tld
    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <!DOCTYPE taglib
    PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN"
    "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
    <taglib>
    <tlibversion>1.0</tlibversion>
    <jspversion>1.1</jspversion>
    <shortname>testTld</shortname>
    <info>Testing jsp tags</info>
    <tag>
    <name>tagError</name>
    <tagclass>com.tek271.testTags.TagError</tagclass>
    <bodycontent>JSP</bodycontent> <!-- Also: empty, tagdependent -->
    <info>Show a string as an error message</info>
    <attribute>
    <name>color</name>
    <required>false</required>
    </attribute>
    </tag>
    </taglib>
    4.testJsp.jsp
    <%@ taglib uri="/testTaglib" prefix="test" %>
    <html>
    <head>
    <title>Testing Tag Library</title>
    </head>
    <body>
    <test:tagError>Invalid user name</test:tagError>
    <test:tagError color="blue">Invalid Password</test:tagError>
    </body>
    </html>
    but i am getting the following error.
    Apache Tomcat/4.0.3 - HTTP Status 500 - Internal Server Error
    type Exception report
    message Internal Server Error
    description The server encountered an internal error (Internal Server Error) that prevented it from fulfilling this request.
    exception
    org.apache.jasper.JasperException: File "/testTaglib" not found
    at org.apache.jasper.compiler.TagLibraryInfoImpl.(TagLibraryInfoImpl.java:214)
    at org.apache.jasper.compiler.TagLibraryInfoImpl.(TagLibraryInfoImpl.java:174)
    at org.apache.jasper.compiler.JspParseEventListener.processTaglibDirective(JspParseEventListener.java:1162)
    at org.apache.jasper.compiler.JspParseEventListener.handleDirective(JspParseEventListener.java:758)
    at org.apache.jasper.compiler.DelegatingListener.handleDirective(DelegatingListener.java:121)
    at org.apache.jasper.compiler.Parser$Directive.accept(Parser.java:255)
    at org.apache.jasper.compiler.Parser.parse(Parser.java:1145)
    at org.apache.jasper.compiler.Parser.parse(Parser.java:1103)
    at org.apache.jasper.compiler.Parser.parse(Parser.java:1099)
    at org.apache.jasper.compiler.ParserController.parse(ParserController.java:213)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:210)
    at org.apache.jasper.servlet.JspServlet.loadJSP(JspServlet.java:552)
    at org.apache.jasper.servlet.JspServlet$JspServletWrapper.loadIfNecessary(JspServlet.java:177)
    at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:189)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:382)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:474)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
    at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
    at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2343)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
    at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:468)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
    at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1012)
    at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1107)
    at java.lang.Thread.run(Thread.java:536)
    why is it like this ?please give me a solution.
    Thanking in advance.
    From
    Vinod A.

    Dear patreck ,
    It does not work.
    I have replaced the line
    <%@ taglib uri="/testTaglib" prefix="test" %>
    with
    <%@ taglib uri="WEB-INF/tlds/testTaglib" prefix="test" %>
    but now it shows the error ,
    description The server encountered an internal error (Internal Server Error) that prevented it from fulfilling this request.
    exception
    org.apache.jasper.JasperException: File "/testTags/WEB-INF/tlds/testTaglib" not found
    any more suggestion ?
    From Vinod A.

  • Jsp/custom tag compiler error (HttpServletResponse)

    I originally posted with on Oracle's site but I am not getting any help.
    Our server is running Oracle 9ias with JServ and Apache.
    I have created a simple jsp that calls a custom tag but I am getting the following error:
    Method addHeader(java.lang.String, java.lang.String) not found in interface javax.servlet.http.HttpServletResponse.
    response.addHeader("Pragma", "No-cache");
    ^
    Is something not setup correctly or installed where it should be?
    the code for the custom tag is from the O'reilly book "JavaServer Pages." This works with JDeveloper on my computer but not on our server.
    package info.wyoroad.jsp.tags.generic;
    import javax.servlet.http.*;
    import javax.servlet.jsp.*;
    import javax.servlet.jsp.tagext.*;
    * This class is a custom action for setting response headers
    * that prevent the page from being cached by a browser or
    * proxy server.
    * @author Hans Bergsten, Gefion software <[email protected]>
    * @version 1.0
    public class NoCacheTag extends TagSupport {
    * Sets "no cache" response headers
    public int doEndTag() throws JspException {
    HttpServletResponse response =
    (HttpServletResponse) pageContext.getResponse();
    response.addHeader("Pragma", "No-cache");
    response.addHeader("Cache-Control", "no-cache");
    response.addDateHeader("Expires", 1);
    return EVAL_PAGE;
    }

    The jsp looks like:
    <%@ page language="java" contentType="text/html;charset=WINDOWS-1252"%>
    <%@ taglib uri="/WEB-INF/wylib.tld" prefix="info" %>
    <HTML>
    <HEAD>
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=WINDOWS-1252">
    <META NAME="GENERATOR" CONTENT="Oracle JDeveloper">
    <info:NoCache />
    <TITLE>
    Test tag
    </TITLE>
    </HEAD>
    <BODY>
    <H2>Test the tag NoCache</h2> </P>
    </BODY>
    </HTML>

  • JSP custom taglib

    Hi, I've a big problem:
    I tried to realize my first custom taglib for converting a .jasper file (a precompilated formatted meta-document) into a PDF file but I poorly failed... :(
    Unfortunatly, although the code run correctly into a main class into a stand alone sample application, the same code (opportunely adapted) doesen't work correctly if used by a JSP with its relative custom tag library.
    The error message is:
    javax.servlet.ServletException: Error loading expression class : report_semplice
         org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:872)
         org.apache.jasper.runtime.PageContextImpl.access$1100(PageContextImpl.java:114)
         org.apache.jasper.runtime.PageContextImpl$12.run(PageContextImpl.java:792)
         java.security.AccessController.doPrivileged(Native Method)
         org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:790)
         org.apache.jsp.reportPDF_jsp._jspService(reportPDF_jsp.java:82)
         org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:141)
         javax.servlet.http.HttpServlet.service(HttpServlet.java:861)
         org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:325)
         org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:306)
         org.apache.jasper.servlet.JspServlet.service(JspServlet.java:253)
         javax.servlet.http.HttpServlet.service(HttpServlet.java:861)
         sun.reflect.GeneratedMethodAccessor178.invoke(Unknown Source)
         sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         java.lang.reflect.Method.invoke(Method.java:324)
         org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:289)
         java.security.AccessController.doPrivileged(Native Method)
         javax.security.auth.Subject.doAsPrivileged(Subject.java:500)
         org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:311)
         org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:205)
    root cause
    javax.servlet.jsp.JspTagException: Error loading expression class : report_semplice
         com.tag.GeneratePDF.doEndTag(GeneratePDF.java:72)
         org.apache.jsp.reportPDF_jsp._jspx_meth_JR_GeneratePDF_0(reportPDF_jsp.java:99)
         org.apache.jsp.reportPDF_jsp._jspService(reportPDF_jsp.java:71)
         org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:141)
         javax.servlet.http.HttpServlet.service(HttpServlet.java:861)
         org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:325)
         org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:306)
         org.apache.jasper.servlet.JspServlet.service(JspServlet.java:253)
         javax.servlet.http.HttpServlet.service(HttpServlet.java:861)
         sun.reflect.GeneratedMethodAccessor178.invoke(Unknown Source)
         sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         java.lang.reflect.Method.invoke(Method.java:324)
         org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:289)
         java.security.AccessController.doPrivileged(Native Method)
         javax.security.auth.Subject.doAsPrivileged(Subject.java:500)
         org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:311)
         org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:205)
    The code of the taglib class is:
    package com.tag;
    import javax.servlet.jsp.*;
    import javax.servlet.jsp.tagext.*;
    import net.sf.jasperreports.engine.*;
    import net.sf.jasperreports.engine.export.*;
    import net.sf.jasperreports.engine.util.*;
    import net.sf.jasperreports.view.*;
    import java.sql.*;
    import org.apache.commons.logging.*;
    import java.io.*;
    import java.util.*;
    public class GeneratePDF extends TagSupport
      private String sourceFileName = "C:\\default.jasper";
      private String destinationFileName = "C:\\default.pdf";
      public void setSourceFileName(String sourceFileName)
        this.sourceFileName = sourceFileName;
      public void setDestinationFileName(String destinationFileName)
        this.destinationFileName = destinationFileName;
      public int doStartTag()
          return SKIP_BODY;
      public int doEndTag() throws JspTagException
        try
            //Passaggio parametri da passare al jasper.
            Map parameters = new HashMap();
            parameters.put("param1", new Integer(1));
            //Preparazione del file da stampare (in questa fase si esegue la query e si inseriscono
            //i valori estratti dalla query)
            JasperPrint jasperPrint=JasperFillManager.fillReport(sourceFileName, parameters, getConnection());
            // a schermo
            // JasperViewer.viewReport(jasperPrint);
           // test
           //pageContext.getOut().println("Destination File:" + destinationFileName);       
        //Creazione del PDF
            JasperExportManager.exportReportToPdfFile(jasperPrint, destinationFileName);
        //    System.exit(0);
           catch(Exception e)
                { throw new JspTagException(e.getMessage());
        return EVAL_PAGE;
    /**Metodo per creare la connessione al DB*/
    private static Connection getConnection() throws ClassNotFoundException, SQLException {
    //Change these settings according to your local configuration
    String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
    String connectString = "jdbc:odbc:gecoware";
    String user = "admin";
    String password = "password";
    Class.forName(driver);
    Connection conn = DriverManager.getConnection(connectString, user, password);
    return conn;
    The .TLD file is:
    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
    <taglib>
        <tlibversion>1.0</tlibversion>
        <jspversion>1.1</jspversion>
        <shortname>JR</shortname>
        <uri>ReportTags</uri>
        <info>Tag library per la generazione di report a partire da files .jasper</info>
        <tag>
            <name>GeneratePDF</name>
            <tagclass>com.tag.GeneratePDF</tagclass>
            <bodycontent>empty</bodycontent>
            <info>Tag per la generazione di PDF</info>
            <attribute>
              <name>sourceFileName</name>
            </attribute>
            <attribute>
              <name>destinationFileName</name>
            </attribute>
        </tag>
    </taglib>
    And the JSP code is:
    <%@ page contentType="text/html; charset=iso-8859-1" language="java" import="java.sql.*" errorPage="" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <%@ taglib uri="ReportTags" prefix="JR" %>
    <html>
    <head>
    <title>GeneratePDF</title>
    </head>
    <body>
    <JR:GeneratePDF sourceFileName="c:\\report_semplice.jasper" destinationFileName="c:\\report1.pdf"/>
    </body>
    </html>
    I hope that someone could help me...
    Thank you,
    AleX

    Hi,
              I think that the container can not identify the tag's ,what you are trying to use.
              As per the j2ee specification , we need to follow the procedure to use the taglib as given below
              Procedure for using a Tag Lib :
              â€¢ Copy tag lib jar files under WEB-INF/lib ( if tag handler supplied as classes without package a jar file then we need to copy the classes under WEB_INF/classes.
              â€¢ Copy the tld files files under WEB-INF or create a directory under WEB-INF and copy tld files under this directory.
              â€¢ We need to give the information about the tag libraries in web.xml by adding the following lines to it as,
              <taglib>
              <taglib-uri>http://www.inet.com/taglibs/bodytags</taglib-uri>
              <taglib-location>/WEB-INF/tlib/tlib1.tld </taglib-location>
              </taglib>
              To use tags in jsp file we need to add taglib directive as ,
              <%@ taglib uri="http://www.inet.com/taglibs/samptags" prefix=“abc"%>
              Every tag can support zero or more number of attributes and a tag may or may not support body content.
              weblogic server try to parse the .tld file whenever the tags are encountered in jsp files.
              As per the .tld file the container identify the attributes of the tags which were defined in .tld file.
              ------ Anilkumar kari

  • Servlet Jsp Login Problen

    Consider 4 pages
    default.jsp          -          Default page     -     Provides link to update.jsp
    Update.jsp          -          Update Page          -     User came through default page
    login.jsp          -          Displays html      -     Two Input tags user & pass
    check Servlet     -          Authentication     -     Validates userid & pwd from database
    what I want to do ?
    1     User clicks on update link on default page
    2     update checks for session as
              String user = (String) session.getAttribute("user");
              if( user == null )                    
                   response.sendRedirect("/login.jsp");
    3     Now login.jsp displays the HTML form with action = /servlet/check          
    4     check servlet revceives values user & pass from HTML response & validates through
         database
    5     Now if validation succedes it must redirect to the actual page that user had
         requested for ultimately i.e update.jsp
    6 HOW MANY WAYS I CAN DO THIS
    7      Problem becomes more serious when along with login & check other intermediate
         servlets are also there.
    8     The final problem is
         1     Update.jsp receives request data from some HTML form but checks for user
              from session object.
         2     If found null redirect to login page
         3     The above prob. now repeats but the point is after authentication
              the check servlet not only redirects to the actual requested page but
              also supplies the data that update.jsp has received
    Please reply soon

    Thanx Sir!
    But i want to have a more generic solution
    like using <jsp:fordward> & <jsp:param> etc
    but i want it so generic that it can be done in ASP/ JSP
    preferably without using queryString
    And the main point is this problen
    request.setAttribute() is not working
    I am uploading the code
    CODE:
    default.jsp     Update
    update.jsp     String user = (String) session.getAttribute("user");
              if( user == null )     {
                   String look_for = request.getRequestURI();
                   request.setAttribute("look_for",look_for);
                   response.sendRedirect("/login.jsp");
    login.jsp     String req = null;
              req = (String)request.getAttribute("req");
              //out.print(req); --> Error Printing null
              request.setAttribute("req", req);
              <form----
              >
              response.sendRidirect("/servlet/check");
    check     
         String user = null;
    String look_for = (String)request.getAttribute("req");
    if(look_for == null)     {
              request.setAttribute("req", look_for);
         response.sendRedirect(request.getHeader("HTTP_REFERER"));
    if(user != "Hemant") {
    request.setAttribute("req",look_for);
    response.sendRedirect("/login.jsp");
    HttpSession session = request.getSession();
    session.setAttribute("user","Hemant");
    response.sendRedirect(look_for);
    out.close();     

Maybe you are looking for

  • Cortana not available on lumia920 in the UK

    Having finally got the Lumia Cyan update to Windows 8.1  Version 8.10.12393.890 Now if I change my settings (keyboard, language and region)  to US, reboot the phone and Cortana is listed under Applications. If I change it all back to English (keyboar

  • HT3964 Power issue with iMac

    i have the 27" 2012 imac,and the last few days,the power buttonisnt responding,when its in sleep mode it wont power back up and im having to reset it by unplugging it from the wall,is or has anyone else experienced this and is there anything i can do

  • Trying to figure out easiest formula to use in iOS Numbers

    To all you smart function Guru's. Looking for help to see if this can be done. All help will be greatly appreciated here. Using Numbers on the iPad. My situation. In the "Pick Up" box I select a location from a drop down, it then puts in a numerical

  • HR Compare employees on 2 different boxes

    Greetings. I have a requirement where I have to compare all employees on 1 box against the employees on a different box based on company code. HR has it's own box. The other modules FI, MM, SD etc...sit on another box. There's an interface that sends

  • Adding a printer on Leopard

    (When I had Tiger, this worked so easily. This makes me want to cry.) I'm on a wireless network with a bunch of windows PCs. Two of them have printers attached. I only want to use one printer (HP Laserjet 1320) on one of the computers, so I tried to