'Jars in Tomcat/lib not recognized at runtime
In preparation for updating my JDK, I would like to remove the servlet-api, jsp-api and el-api jars from the JAVA_HOME/jre/lib/ext directory and instead add them to the classpath as is recommended.
I attempt to do this by adding these dependencies with the provided scope.
However, when I deploy my web application (locally), I still get a ClassNotFoundException, which I think is caused by the 3 missing jars (when I include them in the old jdk location, this exception disappears).
java.lang.ClassNotFoundException: javax.servlet.jsp.tagext.BodyTagSupport
I double checked to make sure that the j2ee classpath is well defined for the project. From my understanding, the application should have access to the 3 jars from my server container (Tomcat) at runtime. Indeed, it seems that this classpath was well defined:
j2ee.platform.classpath
j2ee.server.home
are both defined in my project properties file.
Also, as far as I know I'm not including any of these jars in WEB-INF/lib so I don't think that's what's causing the issue either. I do define the jars as dependencies but I give them the provided scope, with versions for each jar as dictated by this chart: https://tomcat.apache.org/whichversion.html (for Tomcat version 8.0.43).
I'm building the application with ant on Netbeans.
Are there any other suggestions for why these jar files are not recognized at runtime?
Solution 1:[1]
When I had started the project, I clumsily placed some dependency jars in JAVA-HOME/jre/lib/ext.
Removing these jars solved the issue. They had dependencies bundled with them that included jsp-api.jar or servlet-api.jar.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | theyuv |
