当前位置: 首页 > 知识库问答 >
问题:

有没有办法将属性文件保存在WildFly的ear/JAR和模块外部

南宫书
2023-03-14

我有一个应用程序,它指的是一个MY_PRODUCT_CONF_DIR/mycustom.properties文件,其中有一些键值对,需要在我的WildFly上部署的耳朵、战争或罐子外部。在Jboss 6.1.0的早些时候。我们用一种棘手的方式做了这件事。jboss 6.1.0有一个URL集合,CL加载服务器时可见。

例如(https://repository.jboss.org/org/jboss/jbossas/jboss-as-distribution/6.1.0.Final/,参考jboss 6.1.0。final-src\main\src\main\java\org\jboss\Main.java)

  // Define a Set URLs to have visible to the CL loading the Server
  final Set<URL> urls = new HashSet<URL>();
  ..........
  urls.add(new File(MY_ PRODUCT_CONF_DIR)).toURI().toURL());   // I have added the DIR 

  .........
  // Make a ClassLoader to be used in loading the server
  final URL[] urlArray = urls.toArray(new URL[]{});
  final ClassLoader loadingCl = new URLClassLoader(urlArray, tccl);

  // Load the server
  server = JBossASServer.class.cast(ServerFactory.createServer(DEFAULT_AS_SERVER_IMPL_CLASS_NAME, loadingCl));

在我的代码中,我从类加载器读取属性文件

URLClassLoader ucl = (URLClassLoader) loader;
url = ucl.findResource(propertiesResource);
final InputStream inputStream = url.openStream();
..........

那么,有没有保留这一机制的选择?我可以将我的CONFIG_DIR作为URLClassLoader添加到ModuleClassLoader中吗?

有没有办法将属性文件保持在ear/JAR和模块路径的外部?

共有1个答案

葛高澹
2023-03-14

您可以将属性文件放在模块中并以这种方式加载,而无需对getResource或getInputStream使用URLClassLoader。另一种方法是在某个系统属性中指定属性文件的路径,然后只执行一个属性操作。加载(Files.newInputStream(myPath))

 类似资料:
  • 问题内容: 我有一个包含许多文件的目录。每个文件定义一些类。我的目录中也有一个空白。 例如: 我正在尝试导入和访问所有这些文件中定义的类: 这给我一个错误的说法,即没有属性。为什么?为什么我只能访问其中一个文件(),而不能访问其他文件? 问题答案: 问题是子模块不会自动导入。您必须显式导入模块: 如果您真的坚持要在导入时可用,则可以输入以下内容: 然后,这将按预期工作:

  • 因此,我遵循了一个关于创建Discord机器人的Python Discord教程。当我运行代码时,它说“AttributeError:module'discord.client'没有属性'event'”。当我在网上搜索时,大多数答案都令人困惑。我正在使用repl。现在就开始,在Pycharm上试一试。两者都以相同的错误结束 仅供参考:我删除了,这样就不会显示令牌。

  • 我使用Python3.6,是Tkinter的新版本。 当我在Pycharm跑步时: 我有以下资料: 回溯(最近一次调用):文件“G:/Shultais/Practic/Tkinter/Tkinter.py”,第6行,打印(Tkinter.File)属性错误:模块“Tkinter”没有属性“File” 进程已完成,退出代码为1

  • 我知道有很多像这样的题目,但我没有找到答案我的问题。我已经在IntelliJ中创建了JAR文件,并在项目结构中构建了工件。在Java文件夹中,我有一个包META-INF和manifest.mf: 那么我是否应该将它手动添加到IntelliJ中的JAR中呢? Edit:CrazyCoder给出了一个很好的说明,说明META-INF应该在resourse文件夹中,但是我的IntelliJ默认设置一开始

  • 问题内容: 我正在尝试建立一个ARIMA进行异常检测。我需要找到时间序列图的移动平均值,为此我尝试使用pandas 0.23 错误:跟踪(最近一次调用最近):文件“ C:\ Program Files \ Python36 \ lastmainprogram.py”,行74,在moving_avg = pd.rolling_mean(ts_log,12)中AttributeError:模块’pan

  • 我正在尝试为一个名为Zulip的开源项目构建python api,我一直遇到下面截图所示的相同问题。 我正在运行python3,我的pip版本是10.0。0.正在讨论的文件是而混乱的代码是当属性可用于安装软件包。 现在,我知道这个构建应该成功,因为它是一个开源项目,但是我已经尝试了几个小时来修复关于的依赖问题。 任何帮助将不胜感激。