Включая внешнюю банку в Tomcat ClassPath
В Tomcat я хочу использовать банку внутри веб-приложения. Файл jar будет находиться за пределами каталога Tomcat.
Чтобы включить файл jar в classpath tomcat, я изменил свойства TomcatHome/conf/catalina.properties, добавив абсолютный путь к моему файлу jar, например:
shared.loader=D:\jaa\MyJarFile.jar
согласно предложению, приведенному в ссылке,
http://www.mulesoft.com/tomcat-classpath
Но это выдает ошибку,
java.lang.NoClassDefFoundError
Я также пытался,
shared.loader=D:\jaa\*.jar
shared.loader=file:\\D:\jaa\MyJarFile.jar
Ни один из них, кажется, не работает:(
Если я попытаюсь поместить jar в tomcat/lib, он, похоже, сработает. Но мне запрещено это делать.
Пожалуйста, помогите мне с этим вопросом, поскольку у меня есть реализация на следующей неделе.
3 ответа
Я понял, как добавить classpath для Tomcat. Вместо того, чтобы редактировать catalina.properties, просто создайте "setenv.sh" в каталоге Tomcat Bin с classpath,
Пример,
CLASSPATH=D:\jaa\MyJarFile.jar
Я только что проверил catalina.sh в Tomcat / bin, и эти переменные classpath будут установлены при установке начальной загрузки в качестве classpath.
Я использовал IntelliJ, и я попробовал все как:
- Использование CtrlAltShiftS (Настройки проекта) и добавление зависимости
mysql-connector.jar
, Не сработало (Единственное, что сработало, это то, что завершение кода внутри IntelliJ работало нормально. - Добавление
mysql-connector.jar
в папку apache-home/lib/. Не сработало - В том числе
mysql-connector.jar
от Maven внутри IntelliJ. Просто не сработало.
То, что сработало для меня:
Включить mysql-connector.jar
файл в PROJECT/web/WEB-INF/lib
папка.
Нет необходимости добавлять его в качестве зависимости в любом месте. Просто скомпилируйте это, и оно будет работать нормально.
Я копирую дополнительные JAR-файлы, которые должны быть доступны для всех контекстов и поэтому должны идти в корневой загрузчик, в следующий каталог:
C:\Program Files\Apache Software Foundation\Tomcat 9.0\lib
Но это возможно, только если у вас есть доступ к этому каталогу, что может быть не для всех интернет-провайдеров. По крайней мере, вы можете сделать это дома.
до свидания