JSP/JSTL configuration

I realize this is an often repeated topic. But, after having reviewed some threads on configuring this I still have the same issue.
Must be missing something easy.
I am using Tomcat 6.x and working with Spring 2.5 and trying to get my JSP's to use JSTL 1.1.2.
The standard.jar and jstl.jar are both in the WEB-INF/lib of my application.
I am getting the following error...
/index.jsp(1,1) The absolute uri: http://java.sun.com/jstl/core cannot be resolved in either web.xml or the jar files deployed with this application
     org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)Here is my web.xml declaration.
<web-app version="2.4"
         xmlns="http://java.sun.com/xml/ns/j2ee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
         http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" >Here is the include.jsp URI's
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>What am I doing incorrectly? Thanks for your help!

From what you have shown here, you aren't doing anything wrong as far as I can tell.
The error message is reporting it can't find a tld that declares that uri.
That would imply that the tld file is not there - ie it can't find standard.jar in the classpath
Make sure you downloaded the correct version of JSTL.
JSTL1.1: [jakarta site|http://jakarta.apache.org/site/downloads/downloads_taglibs-standard.cgi]
JSTL1.2: [java.net / glassfish|https://jstl.dev.java.net/download.html]
Either should work with Tomcat6.
You say you have the jar files in your WEB-INF/lib directory.
Open standard.jar with any standard zip tool.
You should be able to see a number of .tld files in this zip file. eg c.tld, c-1_0.tld
Take a look at the MANIFEST.MF file to see what version you have, and what specification it implements.
Is your WEB-INF/lib directory in the right place? Where does it sit in relation to the Tomcat webapps directory?
cheers,
evnafets

Similar Messages

  • Class not found javax.servlet.jsp.jstl.sql.Result in Richfaces

    When I try to run the richfaces application using Weblogic 10.3 AS and Netbean IDE 6.9.1, I found ClassNotFoundException on javax.servlet.jsp.jstl.sql.Result class.
    I class path the following libs.
    commons-beanutils-core-1.8.0.jar
    commons-digester-1.8.jar
    commons-fileupload-1.2.1.jar
    commons-io-1.2.jar
    commons-logging-1.1.1.jar
    glassfish.el_2.1.1.jar
    glassfish.jsf_1.2.9.0.jar
    javassist-3.8.0.GA.jar
    jhighlight-1.0.jar
    jsf-facelets.jar
    jsf-api.jar
    log4j-1.2.14.jar
    richfaces-api-3.3.0.GA.jar
    richfaces-impl-3.3.0.GA.jar
    richfaces-ui-3.3.0.GA.jar
    glassfish.jstl_1.2.0.1.jar
    Also I try to deploy without using some jar files already exists in application server.
    My web.xml configuration is-
    <context-param>
    <param-name>org.richfaces.SKIN</param-name>
    <param-value>#{skinSelector.skin}</param-value>
    </context-param>
    <context-param>
    <param-name>org.richfaces.CONTROL_SKINNING</param-name>
    <param-value>enable</param-value>
    </context-param>
    <context-param>
    <param-name>org.ajax4jsf.VIEW_HANDLERS</param-name>
    <param-value>com.sun.facelets.FaceletViewHandler</param-value>
    </context-param>
    <context-param>
    <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
    <param-value>.xhtml</param-value>
    </context-param>
    <context-param>
    <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
    <param-value>server</param-value>
    </context-param>
    <context-param>
    <param-name>org.ajax4jsf.SKIN</param-name>
    <param-value>skin_name</param-value>
    </context-param>
    <filter>
    <display-name>RichFaces Filter</display-name>
    <filter-name>richfaces</filter-name>
    <filter-class>org.ajax4jsf.Filter</filter-class>
    </filter>
    <filter-mapping>
    <filter-name>richfaces</filter-name>
    <servlet-name>Faces Servlet</servlet-name>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
    <dispatcher>INCLUDE</dispatcher>
    </filter-mapping>
    <servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.jsf</url-pattern>
    </servlet-mapping>
    <login-config>
    <auth-method>BASIC</auth-method>
    </login-config>
    <listener>
    <listener-class>com.sun.faces.config.ConfigureListener</listener-class>
    </listener>
    <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
    I also try to configure <library-ref>....</libray-ref> configuration in weblogic.xml and weblogic-application.xml and I also deploy JSF-2.0.war as library in application.
    Please
    h5.MUTU

    So why didn't you think that the JSP forum here wasn't a good place to ask JSP questions like this one?
    You can use <c:for-each> with a List. That's how it's designed. I don't understand why you say you can't. Perhaps you were confused by the SQL tags in JSTL. But anyway, you should just return a List from your EJB and forget about using obscure internal JSP classes.

  • Deployment error - Missing class: javax.servlet.jsp.jstl.core.Config

    Hi,
    We are using JDeveloper 10.1.3.0.4(SU5) on windows for development of ADF application. We need to deploy the developed application onto Oracle Application Server 10g (10.1.3) which is running on Solaris. We are using BC4J, WAR and EAR deployment profiles in jdeveloper to create the .war and .ear files.
    If I deploy the generated ear on a standalone OC4J server install on my windows PC, it works fine.
    Now when I deploy the generated .ear file onto the Oracle Application Server 10.1.3 through Application Server Control interface and then try to access the jspx pages under our application we are getting following error:
    oracle.classloader.util.AnnotatedNoClassDefFoundError:      Missing class: javax.servlet.jsp.jstl.core.Config     Dependent class: com.sun.faces.application.ViewHandlerImpl     Loader: accaweb.web.accaweb:0.0.0     Code-Source: /oracle/app/oracle/product/10gas3/j2ee/home/applications/accaweb/accaweb/WEB-INF/lib/jsf-impl.jar     Configuration: WEB-INF/lib/ directory in /oracle/app/oracle/product/10gas3/j2ee/home/applications/accaweb/accaweb/WEB-INF/libThe missing class is available from the following locations:     1. Code-Source: /oracle/app/oracle/product/10gas3/j2ee/home/default-web-app/WEB-INF/lib/jstl.jar (from WEB-INF/lib/ directory in /oracle/app/oracle/product/10gas3/j2ee/home/default-web-app/WEB-INF/lib)      This code-source is available in loader default.web.defaultWebApp:0.0.0.      at oracle.classloader.PolicyClassLoader.handleClassNotFound (PolicyClassLoader.java:2051) [oracle/app/oracle/product/10gas3/j2ee/home/lib/pcl.jar (from system property java.class.path), by sun.misc.Launcher$AppClassLoader@1482257]
    I have confirmed that the .war file inside the .ear file does contain the jstl.jar file under WEB-INF/lib folder. And the jar file does contain the class 'javax.servlet.jsp.jstl.core.Config'
    As a workaround, I found that if I copy the jstl.jar file from default-web-app to my application web-inf/lib folder, things start to work fine. ie copy from: '/oracle/app/oracle/product/10gas3/j2ee/home/default-web-app/WEB-INF/lib/jstl.jar'
    to: '/oracle/app/oracle/product/10gas3/j2ee/home/applications/accaweb/accaweb/WEB-INF/lib/'
    – or –
    Another workaround is to add the '/oracle/app/oracle/product/10gas3/j2ee/home/default-web-app/WEB-INF/lib/jstl.jar' file in the classpath for my web application through Application Server Control setting page.
    Now both of these workaround needs us to perform additional post deployment steps which should really not be required since the jar files is included in the project.
    Has anyone faced this issue? Any pointers in this respect will be a great help.
    regards - rutwik

    Surprise Surprise !
    I just tried deploying the file via uploading it from the Application Server Control UI and it worked fine.
    Till now, I was ftp'ing the ear file from my PC to the server on which Oracle AS is running and was telling Application Server Control to pick form that uploaded location.
    I am still not clear on why it works with HTTP upload and not via the FTP upload?
    cheers - rutwik

  • ClassCastException: javax.servlet.jsp.jstl.fmt.LocalizationContext

    today i had the following exception, which blows my mind away. what can be wrong?
    java.lang.ClassCastException: javax.servlet.jsp.jstl.fmt.LocalizationContext
         at org.apache.taglibs.standard.tag.common.fmt.BundleSupport.getLocalizationContext(Ljavax.servlet.jsp.PageContext;)Ljavax.servlet.jsp.jstl.fmt.LocalizationContext;(BundleSupport.java:127)
         at org.apache.taglibs.standard.tag.common.fmt.MessageSupport.doEndTag()I(MessageSupport.java:152)
         at jsp_servlet._web_45_inf._jsp._templates.__template._jspService(Ljavax.servlet.http.HttpServletRequest;Ljavax.servlet.http.HttpServletResponse;)V(__template.java:235)environment: weblogic 8.1-sp4, jstl 1.0.6

    well the fact is that the JSPs are 100% correct. i'm migrating some legacy project, which builds, deploys and runs in its old state with no errors at all (and the old state is current PRO, so every bit of code is supposed to be correct). hence i presume it's not the JSPs that are wrong (because i never touched them), that's something else, probably the configuration of things, or conflicts between container libs and webapp libs, or sort of like that.
    so if this error doesn't ring a bell, then i'll try to fiddle around, i thought maybe that's something "famous" :).

  • JSTL javax.servlet.jsp.jstl.core.Config strange lookup

    Hi everyone !
    Could someone explain me this code in the class javax.servlet.jsp.jstl.core.Config :
    public static Object get(PageContext pc, String name, int scope) {
    switch (scope) {
         case PageContext.PAGE_SCOPE:
         return pc.getAttribute(name + PAGE_SCOPE_SUFFIX, scope);
         case PageContext.REQUEST_SCOPE:
         return pc.getAttribute(name + REQUEST_SCOPE_SUFFIX, scope);
         case PageContext.SESSION_SCOPE:
         return get(pc.getSession(), name);
         case PageContext.APPLICATION_SCOPE:
         return pc.getAttribute(name + APPLICATION_SCOPE_SUFFIX, scope);
         default:
         throw new IllegalArgumentException("unknown scope");
    Why adding a suffix when calling PageContext.getAttribute(String, int) ?
    This could lead to potential problems... For example, in my web application I want to share a single ResourceBundle for each JSP page and I would like to use <fmt:message/> tag to resolve my messages.
    For this purpose I added a LocalizationContext in my servlet context attribute in its init method:
    ResourceBundle bundle = ....
    LocalizationContext context = new LocalizationContext(bundle);
    servletContext.setAttribute(Config.FMT_LOCALIZATION_CONTEXT, context);
    Thus, the <fmt:message/> will be able to resolve the messages from this LocalizationContext...
    Unfortunately, this will never happen because the implementation of this tag call somewhere Config.find(PageContext, String) that will call the Config.get(PageContext, String, int) method....
    A quick fix would be to replace the name of the servlet context attribute :
    servletContext.setAttribute(Config.FMT_LOCALIZATION_CONTEXT + ".application", context);
    Could someone tell me if it is a bug ? A bug of the Message tag implementation ? A bug in JSTL code ? Or am I doing all wrong ?
    Note : I'am using a servlet 2.4/JSP 2.0 compatible application with the jstl 1.2 core library and the jakarta standard 1.1.2 implementation library. I'am using Jetty to test my application with Jasper as the JSP compiler...

    This is an internal decision made by JSTL as to how it stores its configuration values.
    The reason they have given here for the suffixes being added is to treat the four scopes as different namespaces, so that there can be no confusion between them.
    I'd say your mistake is trying to set this value into the attribute space yourself rather than using one of the defined interfaces for JSTL to do it - in web.xml, or using the Config class.
    I guess that would make your code
    Config.set(servletContext, Config.FMT_LOCALIZATION_CONTEXT, context); Using their interface for setting this attribute adds the required suffix automatically.
    Cheers,
    evnafets

  • About  JSTL configure

    Hi,all
    I have a question about JSTL configure. I' m learning jsp ,but i don't know how can i use the JSTL under the tomcat5.0 and jdk1.5 in the windows os.
    I have installed the Tomcat 5.0 and jdk1.5 in the windows sys right, copyed the standard.jar and the jstl.jar to my working forlder'WEB-INF/lib forlder,and copyed the 15 .ltd file to the WEB-INF forlder. And i have configure the web.xml file .
    But JSTL did not worked.
    I come from china,is a new. Who can help me,giving me some advises?

    Make sure that you have the version 1.1 of jstl. Go to [url http://jakarta.apache.org/site/downloads/downloads_taglibs.html] this jakarta page and click on the jstl 1.1 taglibs.
    Copy the jstl.jar and standard.jar onto WEB-INF/lib of your web application.
    You neednt copy the tlds seperately. The server will pick up the tlds from the jar files. Neither need you have to have web.xml entries.
    Specify that your web application complies to servlet 2.4 standards. Note Tomcat 5.x and above implements the servlet 2.4 spec.
    Also your web.xml should have the following declaration
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
        version="2.4">
    //other elements
    </web-app>Finally open a jsp, define the following taglib directive and you are on your way -
    <%@page import="java.util.*" %>
    <%@taglib uri="http://java.sun.com/jsp/jstl/core"  prefix="c"%>
    <%
         List data = new ArrayList();
         data.add("A");
         data.add("B");
         data.add("C");
         request.setAttribute("col",data);
    %>
    <c:out value = "${col}"/><br>
    <u>Using a for loop</u>
    <c:forEach items="${col}" var="eachItem">
       ${eachItem}
    </c:forEach>ram.

  • Should I use JSP,JSTL,SERVLETs without a framework?

    Hi Guys
    I'm making a multi player browser game. The game will have some forms to setup data into the database and the player will be able to check other players data.
    I will load the players data from the DB into a Bean when the application starts and then just get the other players information from DB when and if asked.
    I'm planing on doing it as MVC2 using JSP, JSTL, SERVLETs, BEANs
    Would you recommend me to use Struts for example? should I just use it without any framework?
    I read a lot about Struts and can't really see what it can bring to an application like mine. I can use the i18n easily with JSTL and for few validation of forms I don't know if it's worth it.
    What do you think? (-:
    Thanks in advance
    (-:

    If your going to use MVC2 then I would use a framework, otherwise where are you going to get your MVC from, were you planning on writing an MVC yourself?

  • Servlets , JSP, JSTL ,etc

    Hello
    In my Web project , I have used servlets, JSP , JSTL and JDBC to develop a Website, and now I am preparing a report about it.
    Please forgive me if this question sounds "not very smart" , but kindly help. Is it correct to mention in my report I have used J2EE techologies and then briefly explain about JSP, Servlets, etc?
    Thank you
    Vajra

    Well this really depends on what purpose your report serves and what the person/organization you're submitting your report to requires.
    What have you been told to do? Do you have any template that you need to follow?
    If you don't have any, then I guess you could add a section on the technology used and add a brief description covering this.
    But really, this totally depends on your situation and requirements. No one can tell you what to do. And you wouldn't blindly follow advice given by anonymous strangers on an Internet forum for an important project report now would you? :D

  • Previous Page's URL in JSP/JSTL

    Dear Sirs,
    Could you please advice me how I could get the previous page's url( ie, the page the the user was visting before coming to the current page) in JSP/JSTL..
    Thank you in advance

    You mean the referrer? You can just get it from the HTTP header.
    String referrer = httpServletRequest.getHeader("referer"); // Yes, with the legendaric misspelling.

  • JSP/JSTL & XML

    I am trying to have JSP pages parse and read an XML file and then return some data in an HTML table. I'm using the JSTL libraries and have a basic understanding of them, but I apparently need help.
    My first page just gets the value and passes it to the second page. The second page handles all of the processing. Here is my JSP page:
    <%@page contentType="text/html" %>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %>
    <%@include file="index.jsp" %>
    <% String clientID = request.getParameter("enteredID"); %>
    <c:import url="npiXMLTest5.xml" var="doc" />
    <x:parse varDom="dom" doc="${doc}"/>
    <x:set var="srcCID" select="string($dom/npiNumbers/client/clientNum)" />
    <html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>NPI XJTL Test</title></head>
    <body>
    <c:set var="CID" value="<%= clientID %>" />
    <h2>NPI XJTL Test Page</h2>
    <table border="1">
    <tr><th>NPI Number</th><th>Description</th></tr>
    <c:choose>
    <c:when test="${CID}=${srcCID}">
    <x:forEach select="$dom/npiNumbers/client/npiNum" var="$n">
    <tr><td><x:out select="$n/npi" /></td><td><x:out select="$n/desc" /></td></tr>
    </x:forEach>
    </c:when>
    <c:otherwise>
    There is an error with your coding
    </c:otherwise>
    </c:choose>
    </table></body></html>My XML structure is as follows:
    <npiNumbers xsi:schemaLocation="http://localhost/namespace NPI_XSD5.xsd" xmlns="http://localhost/namespace" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <client>
    <clientNum/>
    <clientName/>
    <npiNum>
    <npi/>
    <desc/>
    </npiNum>
    </client>
    </npiNumbers>I am trying to return the results of the <npiNum> element (which can have multiple values) - <npi> and <desc> - in a table based on the <clientNum> element. I try to evaluate the page variable with the xml element. If it matches, I will return a table. A client can have multiple <npiNum> elements, so the construction of the table is in the x:forEach loop.
    I think my problem is getting the variable from JSP to compare against the <clientNum> element in the XML file.
    Any ideas?

    I think your problem is less JSP/JSTL and more querying the XML.
    You are trying to "select all <npinum> elements from a client based on clientnum"
    I am far from an expert on XPath, but I think the following query is what you are after: "/npinumbers/client[clientNum=????]/npiNum"
    To do that with JSTL you would replace ???? with $param:enteredId or $CID (equivalent in your example)
    Here is the resulting JSP page.
    <%@page contentType="text/html" %>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %>
    <c:import url="npiXMLTest5.xml" var="doc" />
    <x:parse varDom="dom" doc="${doc}"/>
    <html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>NPI XJTL Test</title></head>
    <body>
    <c:set var="CID" value="${param.enteredId}" />
    <h2>NPI XJTL Test Page</h2>
    <table border="1">
    <tr><th>NPI Number</th><th>Description</th></tr>
    <x:forEach select="$dom/npiNumbers/client[clientNum=$CID]/npiNum" var="n">
      <tr><td><x:out select="npi" /></td><td><x:out select="desc" /></td></tr>
    </x:forEach>
    </table>
    <hr>
    <form>
    <input type="text" name="enteredId"/>
    <input type="submit">
    </form>
    </body></html>I made up the following test file to use with it. I don't know if it was exactly what your requirements are, but it was a best guess based on your info.
    <npiNumbers>
         <client>
              <clientNum>42</clientNum>
              <clientName>Ford Prefect</clientName>
              <npiNum>
                   <npi>123</npi>
                   <desc>life</desc>
              </npiNum>
              <npiNum>
                   <npi>234</npi>
                   <desc>universe</desc>
              </npiNum>
              <npiNum>
                   <npi>456</npi>
                   <desc>everything</desc>
              </npiNum>          
         </client>
         <client>
              <clientNum>666</clientNum>
              <clientName>Satan</clientName>
              <npiNum>
                   <npi>333</npi>
                   <desc>Baby Devil</desc>
              </npiNum>
         </client>
    </npiNumbers>Cheers,
    evnafets

  • ClassNotFoundException: javax.servlet.jsp.jstl.core.LoopTagStatus

    In JSF2, writing facelets I tried to use <ui:repeat> tag instead of <c:forEach> - JSTL tag.
    I get -> java.lang.ClassNotFoundException: javax.servlet.jsp.jstl.core.LoopTagStatus
    Here is my facelet snippet ...
    <ui:repeat value="#{historyCenterManagedBean.purchases}" var="order" >
             <tr>
                 <td>
                    #{order.totalPriceBeforeDiscounts}:
                 </td>
                 <td>
                    #{order.person.firstname}
                  </td>           
             </tr>
        </ui:repeat>I am not sure why am I getting it. Any help is appreciated.

    Hmm, Thanks Ryan. I am still confused.
    I am not clearly understanding why would c:forEach fail? And this is happening after the nightly build jar of 20091216
    for example this is we have:
    <c:forEach var="partner" items="#{contentPartnersManagedBean.allAuthorizedContentPartners}" >
        <tr>
              <td><a href="#{contextPathManagedBean.contextPath}/about_us/providers_detail.jsf?pID=${partner.partnerId}"
                     class="# {portalSkinManagedBean.contentPortletSkin.normalTextStyle}">${partner.partnerName}
                     </a>
              </td>
       </tr>
    </c:forEach>This is the exception:
    javax.servlet.ServletException: javax/servlet/jsp/jstl/core/LoopTagStatus
         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:325)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
         at com.legaledcenter.util.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:250)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
         at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
         at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
         at com.jscape.framework.galileo.support.upload.UploadFilter.doFilter(UploadFilter.java:71)
         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:233)
         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
         at java.lang.Thread.run(Thread.java:619)
    Caused by: javax.faces.view.facelets.FaceletException: javax/servlet/jsp/jstl/core/LoopTagStatus
         at com.sun.faces.facelets.tag.AbstractTagLibrary$UserComponentHandlerFactory.createHandler(AbstractTagLibrary.java:303)
         at com.sun.faces.facelets.tag.AbstractTagLibrary.createTagHandler(AbstractTagLibrary.java:672)
         at com.sun.faces.facelets.tag.CompositeTagLibrary.createTagHandler(CompositeTagLibrary.java:177)
         at com.sun.faces.facelets.compiler.TagUnit.createFaceletHandler(TagUnit.java:113)
         at com.sun.faces.facelets.compiler.CompilationUnit.getNextFaceletHandler(CompilationUnit.java:108)Thanks for responding.

  • JSP, JSTL and XML Exception

    Hi,
    I'm using tomcat 5.0.28 with J2SE5, JSP and JSTL. I tried to execute the following example about JSTL and XML.
    <%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
    <%@ taglib uri="http://java.sun.com/jstl/xml" prefix="x" %>
    <c:import url="book.xml" var="url" />
    <x:parse xml="${url}" var="book" scope="session" />
    <x:choose>
    </x:choose>
    <P>
    <B><x:out select="$book/book/title"/></B><BR>
    <x:out select="$book/book/author"/><BR>
    <x:out select="$book/book/url"/><BR>When I execute the jsp file, the container produces following exception:
    javax.servlet.ServletException: org/apache/xpath/XPathException
         org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825)
         org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)
         org.apache.jsp.xml.xml_005fchoose_jsp._jspService(xml_005fchoose_jsp.java:104)
         org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
         javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
         org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
         org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
         org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
         javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    root cause
    java.lang.NoClassDefFoundError: org/apache/xpath/XPathException
         java.lang.ClassLoader.defineClass1(Native Method)
         java.lang.ClassLoader.defineClass(ClassLoader.java:620)
         java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
         org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1634)
         org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:860)
         org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1307)
         org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1189)
         java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
         org.apache.taglibs.standard.tag.common.xml.WhenTag.condition(WhenTag.java:51)
         org.apache.taglibs.standard.tag.common.core.WhenTagSupport.doStartTag(WhenTagSupport.java:65)
         org.apache.jsp.xml.xml_005fchoose_jsp._jspx_meth_x_when_0(xml_005fchoose_jsp.java:203)
         org.apache.jsp.xml.xml_005fchoose_jsp._jspx_meth_x_choose_0(xml_005fchoose_jsp.java:169)
         org.apache.jsp.xml.xml_005fchoose_jsp._jspService(xml_005fchoose_jsp.java:84)
         org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
         javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
         org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
         org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
         org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
         javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    Due to the fact, that org/apache/xpath/XPathException belongs to xalan, i copied the xalan 2.7.0 to the web-inf/lib directory. But this doesn't solve the problem. I'm tried it also with xalan, xerces and jaxp. Again, it doesn't work.
    Can anybody help me with this problem?
    bye

    Couple of things, possibly unrelated, but not sure.
    You are using JSTL1.0 uris.
    With Tomcat5 you can use JSTL1.1, and the Servlet2.4 spec.
    You would use the URI: <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    and also update your web.xml file to declare itself as version 2.4
    You shouldn't need any of the xalan xerces or jaxp classes in web-inf/lib.
    xerces is by default found in the [TOMCAT]/common/endorsed directory.
    The others should be provided with the standard java API.
    I would try with minimal jar files in web-inf/lib
    Occasionally if you include files twice in the classpath it will create ClassNotFoundExceptions like this.
    Hope this helps,
    evnafets

  • Javax.servlet.jsp.jstl.sql.Result and arraylist

    Hi,
    I try to explain my problem, I have posted in another section of forum, but perhaps this is a better place:
    I'm trying to use MVC model, so I call an EJB from a servlet which returns me a javax.servlet.jsp.jstl.sql.Result object (this derive from a resultset of a query) and then I make this available to a jsp page.
    I've choosen to return an javax.servlet.jsp.jstl.sql.Result object because I'd like to use this syntax:
    <c:forEach var="profiloString" items="${listaProfili}" >
              ${profiloString.anything}
    </c:forEach>Now I need to put my listaProfili object in session and permit users of my application to add and delete items from it. Finally I will update my database with the new data from listaProfili object.
    If listaProfili is an arraylist I can easily add or delete item from it, but if it is a javax.servlet.jsp.jstl.sql.Result I don't know how I can do this.
    If I return an arraylist object instead of an javax.servlet.jsp.jstl.sql.Result object, I can't use "<c:forEach ..." syntax.
    Can anyone help me?
    Thanks.

    So why didn't you think that the JSP forum here wasn't a good place to ask JSP questions like this one?
    You can use <c:for-each> with a List. That's how it's designed. I don't understand why you say you can't. Perhaps you were confused by the SQL tags in JSTL. But anyway, you should just return a List from your EJB and forget about using obscure internal JSP classes.

  • JSTL configuration on WL8.1

    Hello,
    When I put the jstl taglib declaration like this in WL81 SP2 it works:
    <%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
    Note, that there is no 'jsp' before 'jstl/core'
    But when I add this 'jsp' as it required in JSTL documentation like this:
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> it breaks with the following message:
    <Feb 16, 2005 2:53:27 PM PST> <Warning> <HTTP> <BEA-101248> <[ServletContext(id=12684820,name=webapp,context-path=/webapp)]: Deployment descriptor "jar:file:C:\bea\USER_P~1\domains\EVALGU~1\.\cgServer\.wlnotdelete\extract\cgServer_43WL_weba
    pp\jarfiles\WEB-INF\lib\standard56459.jar!/META-INF/c.tld" is malformed. Check against the DTD: cvc-elt.1: Cannot find the declaration of element 'taglib'. (line 6, column 19).>
    What could be the problem?

    Hello,
    Maybe the JSTL documentation is wrong or is written for another version of JSTL, looking at these articles from the JSTL home site:
    http://www.onjava.com/pub/a/onjava/2002/08/14/jstl1.html
    http://www.onjava.com/pub/a/onjava/2002/09/11/jstl2.html
    http://www.javaworld.com/javaworld/jw-02-2003/jw-0228-jstl-p3.html
    they all use the form of the declaration that you use.
    Cheers,
    Hoos
    Hussein Badakhchani
    Senoir Consultant
    Orbism
    www.orbism.com
    Message was edited by:
    hoos

  • JSP JSTL: How?

    I feel really confused about JSP JSTL, especially the tag URIs.
    Do they have to be web URLs like http://java.sun.com/jsp/jstl/Core, or can they be some local address if I wish to point it to some package located in my machine?
    Can someone explain this to me, or give me a snippet of code that works? Thank you!

    When uri points to
    http://java.sun.com/jsp/jstl/Core, for example,
    the JSP container maps it to some internal TLD file,
    according to fstream.
    My questions are:
    How do I find out the mapping? (What file defines this
    mapping?)
    Can I customize this mapping?From Tomcat 5.0.19, the mapping from what I have learned is 'cached' by the web server. It maps the 'TLD' desciptor. For The JSTL, the jar file that contains the TLD explains where the 'tag' is located. Try doing a 'custom tag' which is a tag you define with a tag class, a tld, and also make sure you place it in the right location within your 'webapps' folder of tomcat. To understand what JSTL is doing, trying to again create your own custom tag.

Maybe you are looking for