Http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml file or jar files deployed with this app
I am new to jsp web development and debugging my application to read the database gives the following error:
The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar files deployed with this application
I researched the internet on several sites for this problem for so long that I couldn't fix anything. These are my specs:
IDE: eclipse / JSP version: 2.0 / Servlet version: 2.4 / JSTL version: 1.1.1 / Tomcat version: 7.0.35 /
This is my WEB-INF / web.xml file
<?xml version="1.0" encoding="UTF-8" ?>
<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 web-app_2_4.xsd"
version="2.4">
<resource-ref>
<description>Resource configuration for database connection</description>
<res-ref-name>jdbc/TestDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
This is my META-INF / context.xml file
<?xml version="1.0" encoding="UTF-8" ?>
<Context>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="admin" password="admin" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/checklist_pdnf"/>
</Context>
And this is my jsp file
<?xml version="1.0" encoding="UTF-8" ?>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
<sql:query var="db" dataSource="jdbs/TestDB">
select * from patient
</sql:query>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<div>
<table>
<c:forEach var="row" items="${db.rows}">
<tr>
<td>row.getString("patient_medicalRecordNumber")</td>
<td>row.getString("patient_lastName")</td>
<td>row.getString("patient_firstName")</td>
<td>row.getString("patient_middleName")</td>
<td>row.getString("patient_dateOfBirth")</td>
<td>row.getString("patient_gender")</td>
<td>row.getString("patient_admissionDateTime")</td>
<td>row.getString("patient_dischargeDateTime")</td>
<td>row.getString("patient_attendingPhysician")</td>
<td>row.getString("patient_locationRoom")</td>
</tr>
</c:forEach>
</table>
</div>
</body>
</html>
source to share
It turns out my JSP version was actually 2.2, I remember opening a page in Eclipse to be able to get this information, but couldn't find it for an answer. However, I'll update this answer if necessary.
Libraries used:
(1) javax.servlet.jsp.jstl-1.2.1.jar
(2) javax.servlet.jsp.jstl-api-1.2.1.jar
(3) javax.servlet-api-3.0.1.jar
(4) mysql-connector-java-5.1.23-bin.jar
pom.xml links to http://java.net/projects/jsp/sources/svn/content/trunk/impl/pom.xml?rev=1440
Dependency Versions:
a) javax.servlet-api 3.1. (b) javax.el-api 2.2.1. (c) javax.servlet.jsp-api 1.2.1 (d) javax.servlet.jsp.jstl-api 1.2.1. (e) jstl 1.2. (f) jstl-imp 1.2.
Link in web.xml:
`<web-app
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> `
source to share
According to this link, have you followed the following instruction?
This JSP page uses JSTL SQL tags and Core taglib. You can get it from Apache Tomcat Taglibs - the standard tag library project - just make sure you get version 1.1.x or later. Once you have the JSTL, copy the jstl.jar and standard.jar to your WEB-INF / lib directory.
source to share