<div dir="ltr" style="text-align: left;" trbidi="on">While deploying a web application of spring mvc with maven and jsp on tomcat 7.0. If you got a following problem.</p>
<p><b>Problem-</b><br />
java.lang.ClassNotFoundException: javax.servlet.jsp.jstl.core.Config<br />
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)<br />
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)<br />
at org.apache.myfaces.view.jsp.JspViewDeclarationLanguage.buildView(JspViewDeclarationLanguage.java:91)<br />
at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:78)<br />
at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:241)<br />
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:199)<br />
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)<br />
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)<br />
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)<br />
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)<br />
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)<br />
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)<br />
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)<br />
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)<br />
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)<br />
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)<br />
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)<br />
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)<br />
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)<br />
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)<br />
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)<br />
at java.lang.Thread.run(Unknown Source)</p>
<p>
<b>Solution-</b></p>
<p>Solution for this problem is following-</p>
<p>The error is telling you it cannot find the class because it is not available in your application.<br />
By default, Tomcat container doesn’t contain any jstl library. To fix it, declares jstl.jar in your Maven <b>pom.xml</b> file.</p>
<p><b>1.</b> If you are using <b>Maven</b>, make sure you have the dependency for jstl artifact:</p>
<p></p>
<pre class="highlight" name="code"><;dependency>;
 <;groupId>;javax.servlet<;/groupId>;
 <;artifactId>;jstl<;/artifactId>;
 <;version>;1.2<;/version>;
 <;/dependency>;
</pre>
<p>
<b>2.</b> If you were using <b>Gradle</b>, you could write in a <b>build.gradle</b>:</p>
<pre class="highlight" name="code">dependencies {
 compile 'javax.servlet:jstl:1.2'
}

</pre>
<p>
<b>3.</b> And if you are not using maven or gradle, just make sure you include the JAR in your classpath.<br />
You need to add at least the following jar files in your WEB-INF/lib directory:</p>
<ul style="text-align: left;">
<li>jsf-impl.jar</li>
<li>jsf-api.jar</li>
<li>jstl.jar</li>
</ul>
<p>You can download JSTL 1.1 <a href="http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/jakarta-taglibs-standard-1.1.2.zip" target="_blank">here</a> and JSTL 1.2 <a href="http://central.maven.org/maven2/javax/servlet/jstl/1.2/jstl-1.2.jar" target="_blank">here</a>.</p>
<p>
</div>
<div class="wp-post-navigation"> 
									 <div class="wp-post-navigation-pre"> 
									 <a href="https://dineshonjava.com/servlets-database-access/">Previous</a> 
									 </div> 
									 <div class="wp-post-navigation-next"> 
									 <a href="https://dineshonjava.com/difference-between-servletconfig-and-cervletcontext-in-java-servlet/">Next</a> 
									 </div> 
									</div>
<script type="text/javascript">
jQuery(document).ready(function($) {
 $.post('https://dineshonjava.com/wp-admin/admin-ajax.php', {action: 'mts_view_count', id: '157'});
});
</script>
Strategy Design Patterns We can easily create a strategy design pattern using lambda. To implement…
Decorator Pattern A decorator pattern allows a user to add new functionality to an existing…
Delegating pattern In software engineering, the delegation pattern is an object-oriented design pattern that allows…
Technology has emerged a lot in the last decade, and now we have artificial intelligence;…
Managing a database is becoming increasingly complex now due to the vast amount of data…
Overview In this article, we will explore Spring Scheduler how we could use it by…