无法将 Java 库放在 .war 之外

Can't place Java Libraries outside of the .war

有什么方法可以访问 Jetty 服务器中 .war 文件之外的 java 库?

我已经尝试了几种方法,例如扩展 wars,但每次都失败了,因为服务器每次都没有启动。

目前我构建了一个 war 并从中排除了一些 JAR,然后我将这些 JAR 放在我的 Jetty Distribution 的 lib 文件夹中。但出于某种原因,它没有从该文件夹中查找库。我正在使用 Jetty 版本 9。

应该如何正确配置才能正常工作?

jetty 发行版中的 lib 目录不会自动添加到服务器的类路径中。 start.jar 命令根据启用的模块构建类路径。您可以使用以下命令查看构建的类路径:

java -jar $JETTY_HOME/start.jar --list-config

有一个模块可以将 lib/ext 中发现的任何 jar 添加到类路径中,因此您只需将 --module=ext 添加到命令行或 运行 类似

java -jar $JETTY_HOME/start.jar --add-to-startd=ext

然后 lib/ext 中的任何 jar 都将放在服务器类路径中。

下一个问题是它们是否对 webapp 可见...如果它们不在 java 或 javax 或 org.eclipse.jetty 包中,那么它们通常是默认可见。如果要添加隐藏 类,则需要调整上下文服务器和系统 类 配置。