Включая внешнюю банку в 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, и я попробовал все как:

  1. Использование CtrlAltShiftS (Настройки проекта) и добавление зависимости mysql-connector.jar, Не сработало (Единственное, что сработало, это то, что завершение кода внутри IntelliJ работало нормально.
  2. Добавление mysql-connector.jar в папку apache-home/lib/. Не сработало
  3. В том числе mysql-connector.jar от Maven внутри IntelliJ. Просто не сработало.

То, что сработало для меня:

Включить mysql-connector.jar файл в PROJECT/web/WEB-INF/lib папка.

Нет необходимости добавлять его в качестве зависимости в любом месте. Просто скомпилируйте это, и оно будет работать нормально.

Я копирую дополнительные JAR-файлы, которые должны быть доступны для всех контекстов и поэтому должны идти в корневой загрузчик, в следующий каталог:

 C:\Program Files\Apache Software Foundation\Tomcat 9.0\lib

Но это возможно, только если у вас есть доступ к этому каталогу, что может быть не для всех интернет-провайдеров. По крайней мере, вы можете сделать это дома.

до свидания

Другие вопросы по тегам