java - 如何让 WebApp 在嵌入式码头的类路径上找到应用程序属性?
问题描述
我们有一个应用程序,它由一个 war 文件和两个属性文件组成。在正常情况下,我们只需将战争放入 /webapps (jetty) 并将配置放入 /resources,一切运行良好。
我们如何使用嵌入式码头做到这一点?所以我有一个类文件,它可以创建一个嵌入式码头服务器并使用以下方式部署war文件:
WebAppContext ctx = new WebAppContext(warfileLocation,"/");
服务器运行起来,但应用程序没有启动,因为它找不到应用程序引用的属性,该应用程序希望在类路径中找到 .properties 文件。
如何以编程方式将配置属性文件部署到嵌入式码头上下文?大概是通过在上下文中使用某种方法来引用本地磁盘上的文件?
谢谢。
解决方案
AWebAppContext
是与 Server 类路径隔离的类加载器,使 Server 类路径上可用的内容对WebAppContext
.
你有两个选择。
- 翻转类加载器隔离的规则。
如果您的嵌入式码头中只有 1 个 WebAppContext,并且您不关心类加载器隔离,请调用WebAppContext.setParentLoaderPriority(true);
- 将您需要的特定类路径条目添加到
WebAppContext
.
在将其添加到并启动/部署之前,您可以调用WebAppContext.setExtraClasspath(String)
添加任何您想要的任意类路径条目。WebAppContext
HandlerCollection
推荐阅读
- python - 一旦收到有效输入,如何打破用户选择的循环?
- c++ - 为一群追逐兔子的狐狸创建植绒算法的最佳方法
- python - go.Histogram2dContour 从 plotly 显示不同的图表类型
- android - InnerClass 的 ClassNotFoundException 因为编译器生成的类路径不同
- odoo-8 - 如何在操作按钮(odoo 8)内同时组合警告消息和更新值
- python - VSCode 中的“MemoryError”,但 Jupyter/AnacondaPrompt 中没有
- .htaccess - 将每个 URL 重定向到其他域主页
- python - 基于 Triplet Loss 正确提交 3 个输入到 Keras 模型
- c# - 使用两个应用时的 Azure AD 身份验证重定向循环(cookie 错误)
- apache-kafka - Kafka.conn FetchResponse_v2 使用 python 消费者获取“message_set=b''”