Including external jar in Tomcat ClassPath
In Tomcat I want to use a jar inside a web application. The jar file will exist outside of the Tomcat directory.
To include the jar file in tomcat c开发者_StackOverflowlasspath, I modified the TomcatHome/conf/catalina.properties to include the absolute path of my jar file like,
shared.loader=D:\jaa\MyJarFile.jar
as per the suggestion given in link,
http://www.mulesoft.com/tomcat-classpath
But it throws the error,
java.lang.NoClassDefFoundError
I have also tried ,
shared.loader=D:\jaa\*.jar
shared.loader=file:\\D:\jaa\MyJarFile.jar
None of them seem to work :(
If I try placing the jar inside tomcat/lib it seem to work. But I am not allowed to do that.
Please help me out with this issue as I have implementation the next week..
I figured myself how to add the classpath for tomcat. Instead of editing catalina.properties, just create a "setenv.sh" in the Tomcat Bin directory with the classpath,
Example,
CLASSPATH=D:\jaa\MyJarFile.jar
I just checked the catalina.sh in Tomcat/bin and these classpath variable will be set while setting the bootstrap as the classpath.
I was using IntelliJ and I tried everything like:
- Using CtrlAltShiftS (Project Settings) and adding a dependency of
mysql-connector.jar
. Didn't work. (The only thing that worked was that code completion inside IntelliJ was working fine. - Adding
mysql-connector.jar
to apache-home/lib/ folder. Didn't work. - Including
mysql-connector.jar
from Maven inside IntelliJ. Just didn't work.
The thing that worked for me:
Include the mysql-connector.jar
file in the PROJECT/web/WEB-INF/lib
folder.
No need to add it as a dependency anywhere. Just compile this and it will work fine.
I find myself copying extra JARs, which should be available for all contexts and should therefor go into the root loader, into the following directory:
C:\Program Files\Apache Software Foundation\Tomcat 9.0\lib
But this only possible if you have access to this directory, which might not be the case for all ISPs. At least you can do it at home.
Bye
精彩评论