如何在不重新启动 Tomcat 的情况下重新加载属性文件

2023-12-23

我使用以下方法从类路径加载属性文件:

    String cheminFichier = new StringBuilder(100).append(classeBP.getPackage().getName().replace(".", "/")).append(File.separator).append(
        REPERTOIRE_MAPPING).append(nomFichier).append(".properties").toString();
    InputStream isMapping = Thread.currentThread().getContextClassLoader().getResourceAsStream(cheminFichier.toString());
    if (isMapping == null)
    {
        throw new ServiceMappingException("Erreur lors du chargement du mapping du service. Le fichier "
            + cheminFichier + " n'existe pas.");
    }
    else
    {
        Properties mapping = new Properties();
        try
        {
            mapping.load(isMapping);
        }
        catch (IOException e)
        ...
    }

好的,工作了。但是,如果我在 Tomcat 运行时修改属性文件的内容,则更改将被忽略。 它不像类那样热重载。

我的上下文配置为reloadable="true"选项和 Thread.currentThread().getContextClassLoader() 返回的类加载器是 WEBAPP 类加载器(不是系统类加载器或其他)。

我读到可以使用 ServletContext.getResourceAsStream,但我无法访问 servlet 上下文。

这是 Tomcat 5.5。

任何想法 ?如果没有,您是否有强制重新加载特定资源(我的属性文件)的解决方案?

Thanks !


你可以使用类似的东西公共配置 http://commons.apache.org/configuration/支持自动重装 http://commons.apache.org/configuration/userguide/howto_filebased.html#Automatic_Reloading.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在不重新启动 Tomcat 的情况下重新加载属性文件 的相关文章

随机推荐

  • Lib Gdx json 序列化异常和缺少无参数构造函数

    当尝试执行这段代码时 public void load String filename FileHandle file Gdx files external filename bim Json json new Json String te
  • 在.net框架中测试

    我创建了一个针对 NET Framework 4 6 1 的单元测试项目 测试显示在测试资源管理器中 并在 Visual Studio 2017 中正常运行 我想设置一个构建过程 所以我想从命令行运行测试 我尝试使用 mstest 但这没有
  • 詹金斯正在重新启动,请稍候 - 等待很长时间

    我更新了一些插件并重新启动了詹金斯 但现在它说 Jenkins 正在重新启动 请稍候 当 Jenkins 准备就绪时 您的浏览器将自动重新加载 花费了太多时间 从最后 40 分钟开始等待 我只有 1 个项目 大约有 20 个版本 我已经重新
  • Tkinter - 使用自动换行计算文本小部件中的行数

    我想知道如何获取启用自动换行的 Tkinter Text 小部件中的行数 在此示例中 文本小部件中有 3 行 from Tkinter import root Tk text Text root width 12 height 5 wrap
  • 我从 .ssh 文件夹中删除了known_hosts 文件,并且无法在 BitBucket 存储库中拉取或推送

    我犯了一个错误 删除了 ssh 文件夹中的 known hosts 文件 现在我无法在 BitBucket 存储库中拉取或推送 我该如何解决 尝试执行 ssh T email protected cdn cgi l email protec
  • 从第二个 ViewController 返回到第一个 ViewController

    我正在构建一个当前有 3 个 ViewController 的应用程序 其中之一是在成功登录后使用的 因此与这个问题无关 当我发现 Storyboard 无法提供所需的精细控制时 我混合使用 Storyboard 并以编程方式构建内容 第一
  • 使用打字稿模板将 create-react-app 更新到 4.0 时出错

    我要更新react scripts到下一个版本 4 0 0 这样我就可以使用本指南使用快速刷新功能here https gist github com iansu 282dbe3d722bd7231fa3224c0f403fa1 但是当重新
  • 金字塔 postgresql 连接

    我对金字塔完全陌生 我正在尝试开发一个同时使用金字塔和 postgresql 的应用程序 但我对如何配置 sripts 目录中的initializedb py 文件 尤其是初始化数据库 完全感到困惑 我正在使用 PostgreSQL 9 1
  • 在android布局中layout_height =“0dip”的效果/含义是什么

    我见过几个使用的例子 android layout height 0px 或 0dip 但我不明白这样做的影响 看起来这会使布局高度为 0 像素 该值是否有所减轻 但还有一些其他因素 例如 重量 或任何父视图的高度 是的 你对重量的看法是正
  • Twig 将内容附加到块

    在树枝模板中 是否可以将内容附加到块中 例如 请考虑下面的模板文件 布局 html twig block content endblock content 内部 html twig block css a color fff body ba
  • 通过Python suds在JIRA中创建问题时设置受让人字段

    使用 JIRA 版本 4 2 使用 Python 2 7 和 suds 0 4 如何创建受让人字段集的问题 下面的代码中将忽略受让人字段 new issue client service createIssue auth project N
  • 使用Webpack将Vue暴露到全局

    我正在使用旧版 Rails 应用程序 该应用程序已部分迁移为使用 Webpacker 和 Vue 我们还有一个通过 CDN 加载的遗留脚本 该脚本也需要使用 Vue 但是 我们不想将 Vue 捆绑到其中 而只使用旧版 Rails 应用程序中
  • GNU Make 支持文件名中的“%”吗?

    在 GNU Make 中 是否可以依赖包含以下内容的文件 在文件名中 我有这样的事情 foo results 10 dat gnuplot config plt 虽然我当然可以选择不同的文件名 但很高兴知道是否 应该始终避免 或者是否有一种
  • Slurm:为什么在 sbatch 中使用 srun?

    在 sbatch 脚本中 您可以直接启动程序或脚本 例如可执行文件myapp 但在许多教程中人们使用srun myapp反而 尽管阅读了有关该主题的一些文档 我不明白其中的区别以及何时使用这些语法 我希望这个问题足够精确 SO的第一个问题
  • 如何从密钥库列出/导出私钥?

    如何列出并从密钥库导出私钥 您可以使用 Java6 和 OpenSSL 从密钥库中提取私钥 这一切都取决于 Java 和 OpenSSL 都支持 PKCS 12 格式的密钥库这一事实 要进行提取 您首先使用keytool转换为标准格式 确保
  • 用于编译 GUI 表单的 Ant 任务(Intellij IDEA)

    如何在 Intellij IDEA 中创建 Ant 任务来编译 GUI 表单 XML 我在项目中使用 Scala 和 Java Java仅用于GUI类 我使用Intellij IDEA UI Designer创建它 请不要打败我 但在设置
  • 原始 SQL 请求中的 Rails 4 字符串插值

    在不进行插值的情况下重写此查询的最佳方法是什么 def case joins type subquery lt lt SQL squish SELECT id FROM cases c2 WHERE c2 title id titles i
  • MySQL基于不同时间级别的热门行

    我有 2 张桌子 photo and like 我正在尝试根据一天内的点赞数来获取热门照片 所以基本上是这样的 今天流行 SELECT p id AS id COUNT li id AS total likes FROM photo p L
  • 如何在不使用 select 的情况下检查(查看)Perl 中管道数据的 STDIN?

    我正在尝试处理没有参数和管道数据传递到 Perl 脚本的可能性 我假设如果没有参数 则输入将通过 STDIN 进行管道传输 但是 如果用户未提供任何参数并且未将任何内容通过管道传递给脚本 它将尝试获取键盘输入 我的目标是提供错误消息 很遗憾
  • 如何在不重新启动 Tomcat 的情况下重新加载属性文件

    我使用以下方法从类路径加载属性文件 String cheminFichier new StringBuilder 100 append classeBP getPackage getName replace append File sepa