在Tomcat6中设置背书目录

Set endorsed directory in Tomcat6

我想为 Tomcat6 设置认可目录,以便它可以使用某些库而不是默认库。

因此,当我在独立应用程序中 运行 时:

System.out.println(System.getProperty("java.endorsed.dirs"));

它打印:

/usr/lib/jvm/jdk1.6.0_45/jre/lib/endorsed

但是,当我在 Tomcat 中执行应用程序 运行ning 时,它会打印一个空行。

我已经尝试用这个修改 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 -Xmx1024m -XX:PermSize=1024m -XX:MaxPermSize=1024m

但它似乎仍然不知道属性。

那么,我如何才能知道 Tomcat 认可的目录位于何处?

对于 Tomcat 6 参见 https://tomcat.apache.org/tomcat-6.0-doc/RUNNING.txt

在 Ubuntu 上,/etc/init.d/tomcat8 中的启动脚本将引用 /etc/default/tomcat8 中的配置,该配置具有 JAVA_OPTS,你可以添加到它(它使用默认的环境配置来构建一个完整的JAVA_OPTS,所以确保你不会不小心替换它们)。

好像在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....]"

我认为没有很好记录的问题。