0

I want to fetch data from database named as classicalmodels. Here I am using JSTL in order to fetch it. But when I am using the JSTL tags, it is throwing exception as - HTTP Status 500 - java.lang.NoClassDefFoundError: javax/servlet/jsp/tagext/Tag. I am using Tomcat version 7 with JDK 1.8 and I have added the jstl-1.2.jar file under Project -> Java Resources -> Libraries -> Web App Libraries. Also I have added it under Web Content -> WEB-INF -> lib. Here the flow of directory can be clearly seen : https://i.stack.imgur.com/mSMx6.jpg Here are my scripts.

page2.jsp

    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="ISO-8859-1">
    <title>page2.jsp</title>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
    <%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%>
    </head>
    <body>
        <sql:setDataSource var="db" driver="com.mysql.jdbc.Driver"
            url="jdbc:mysql://localhost:3306/classicmodels" user="root" password="1234" />
            
            <sql:query var="rs" dataSource = "${db}">select * from employees</sql:query>
            
            <c:forEach items = "${rs.rows}" var = "gadget">
            <br/> <c:out value = "${gadget.employeeNumber}"></c:out>
            </c:forEach>
            
        <h3>The value of i fetched from the addNumbers page is:</h3>
    </body>
    </html>

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
  
   <!-- <servlet>
  <servlet-name>abc</servlet-name>
  <servlet-class>AddServlet</servlet-class>
  </servlet>
  
  <servlet-mapping>
  <servlet-name>abc</servlet-name>
  <url-pattern>/add</url-pattern>
  </servlet-mapping>
  
  
   <servlet>
  <servlet-name>pqr</servlet-name>
  <servlet-class>SqServlet</servlet-class>
  </servlet>
  
  <servlet-mapping>
  <servlet-name>pqr</servlet-name>
  <url-pattern>/sq</url-pattern>
  </servlet-mapping> -->
  
</web-app>

Exception and Stack Trace:

    HTTP Status 500 - java.lang.NoClassDefFoundError: javax/servlet/jsp/tagext/Tag

    type Exception report

    message java.lang.NoClassDefFoundError: javax/servlet/jsp/tagext/Tag

    description The server encountered an internal error that prevented it from fulfilling this request.

    exception

    javax.servlet.ServletException: java.lang.NoClassDefFoundError: javax/servlet/jsp/tagext/Tag
        org.apache.jasper.servlet.JspServlet.service(JspServlet.java:348)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
        org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

    root cause

    java.lang.NoClassDefFoundError: javax/servlet/jsp/tagext/Tag
        java.lang.ClassLoader.defineClass1(Native Method)
        java.lang.ClassLoader.defineClass(Unknown Source)
        java.security.SecureClassLoader.defineClass(Unknown Source)
        java.net.URLClassLoader.defineClass(Unknown Source)
        java.net.URLClassLoader.access$100(Unknown Source)
        java.net.URLClassLoader$1.run(Unknown Source)
        java.net.URLClassLoader$1.run(Unknown Source)
        java.security.AccessController.doPrivileged(Native Method)
        java.net.URLClassLoader.findClass(Unknown Source)
        java.lang.ClassLoader.loadClass(Unknown Source)
        java.lang.ClassLoader.loadClass(Unknown Source)
        org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1821)
        org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1750)
        java.lang.ClassLoader.defineClass1(Native Method)
        java.lang.ClassLoader.defineClass(Unknown Source)
        java.security.SecureClassLoader.defineClass(Unknown Source)
        org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:3125)
        org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:1388)
        org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1876)
        org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1750)
        org.apache.jasper.compiler.Parser.parseCustomTag(Parser.java:1216)
        org.apache.jasper.compiler.Parser.parseElements(Parser.java:1446)
        org.apache.jasper.compiler.Parser.parse(Parser.java:138)
        org.apache.jasper.compiler.ParserController.doParse(ParserController.java:242)
        org.apache.jasper.compiler.ParserController.parse(ParserController.java:102)
        org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:199)
        org.apache.jasper.compiler.Compiler.compile(Compiler.java:374)
        org.apache.jasper.compiler.Compiler.compile(Compiler.java:354)
        org.apache.jasper.compiler.Compiler.compile(Compiler.java:341)
        org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:660)
        org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:364)
        org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
        org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
        org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

    root cause

    java.lang.ClassNotFoundException: javax.servlet.jsp.tagext.Tag
        java.net.URLClassLoader.findClass(Unknown Source)
        java.lang.ClassLoader.loadClass(Unknown Source)
        java.lang.ClassLoader.loadClass(Unknown Source)
        java.lang.ClassLoader.defineClass1(Native Method)
        java.lang.ClassLoader.defineClass(Unknown Source)
        java.security.SecureClassLoader.defineClass(Unknown Source)
        java.net.URLClassLoader.defineClass(Unknown Source)
        java.net.URLClassLoader.access$100(Unknown Source)
        java.net.URLClassLoader$1.run(Unknown Source)
        java.net.URLClassLoader$1.run(Unknown Source)
        java.security.AccessController.doPrivileged(Native Method)
        java.net.URLClassLoader.findClass(Unknown Source)
        java.lang.ClassLoader.loadClass(Unknown Source)
        java.lang.ClassLoader.loadClass(Unknown Source)
        org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1821)
        org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1750)
        java.lang.ClassLoader.defineClass1(Native Method)
        java.lang.ClassLoader.defineClass(Unknown Source)
        java.security.SecureClassLoader.defineClass(Unknown Source)
        org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:3125)
        org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:1388)
        org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1876)
        org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1750)
        org.apache.jasper.compiler.Parser.parseCustomTag(Parser.java:1216)
        org.apache.jasper.compiler.Parser.parseElements(Parser.java:1446)
        org.apache.jasper.compiler.Parser.parse(Parser.java:138)
        org.apache.jasper.compiler.ParserController.doParse(ParserController.java:242)
        org.apache.jasper.compiler.ParserController.parse(ParserController.java:102)
        org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:199)
        org.apache.jasper.compiler.Compiler.compile(Compiler.java:374)
        org.apache.jasper.compiler.Compiler.compile(Compiler.java:354)
        org.apache.jasper.compiler.Compiler.compile(Compiler.java:341)
        org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:660)
        org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:364)
        org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
        org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
        org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

    note The full stack trace of the root cause is available in the Apache Tomcat/7.0.84 logs.

Please help. How to get rid of this unchecked exception.

Javed
  • 1
  • 2

0 Answers0