Установить одобренный каталог в Tomcat6
Я хочу установить одобренный каталог для Tomcat6, чтобы он мог использовать определенные библиотеки вместо библиотек по умолчанию.
Итак, когда я запускаю это в автономном приложении:
System.out.println(System.getProperty("java.endorsed.dirs"));
Это печатает:
/usr/lib/jvm/jdk1.6.0_45/jre/lib/endorsed
Однако, когда я делаю это приложение, запущенное в Tomcat, оно печатает пустую строку.
Я пытался изменить tomcat6.conf
с этим (и перезапуском, конечно):
JAVA_OPTS = "-Djava.endorsed.dirs = / usr / share / tomcat6 / endorsed -Djavax.sql.DataSource.Factory = org.apache.commons.dbcp.BasicDataSourceFactory -Djava.awt.headless = true -Xms1024m -Xxx:PermSize=1024m -XX:MaxPermSize=1024m"
Но он все еще не знает этого свойства.
Итак, как я могу сказать Tomcat, где находится одобренный каталог?
2 ответа
Кажется, что установка этой опции в tomcat6.conf:
-Djava.endorsed.dirs=/usr/share/tomcat6/endorsed
недостаточно. Требуется создать переменную с именем JAVA_ENDORSED_DIRS. Итак, эти две строки нужны в tomcat6.conf:
JAVA_ENDORSED_DIRS="/usr/share/tomcat6/endorsed"
JAVA_OPTS="-Djava.endorsed.dirs=$JAVA_ENDORSED_DIRS [-Djava....]"
Думаю, не очень хорошо задокументированная проблема.
Для Tomcat 6 см. https://tomcat.apache.org/tomcat-6.0-doc/RUNNING.txt
В Ubuntu сценарий запуска в /etc/init.d/tomcat8 будет ссылаться на конфигурацию в /etc/default/tomcat8, в которой есть JAVA_OPTS, вы можете добавить к нему (он использует конфигурацию env по умолчанию для создания полной JAVA_OPTS, поэтому сделайте уверен, что вы случайно не замените их).