【问题标题】:Wildlfy Swarm YAML properites fileWildfly Swarm YAML 属性文件
【发布时间】:2018-01-24 14:55:04
【问题描述】:

我正在尝试使用自定义参数运行 swarm,当我在命令行上传递属性选项时,服务器会检测到这些选项并正常运行,例如当我运行此命令时:

java -jar test.jar -Dswarm.https.certificate.generate=true

它会生成一个证书并在特定端口上启动 https。

现在根据 swarm 文档,最好使用 yaml 配置文件,所以我创建了一个具有我想要的属性的文件。但是,当我在命令行中指定 yaml 文件的路径时:

java -jar test.jar -S C:\Users\x17\test\modules\wsserver\project-default.yml

在这种情况下,包含属性的文件被忽略,服务器以默认配置启动。

项目默认文件是否应该位于我项目的特定文件夹中?有人知道如何解决这个问题吗?

谢谢

【问题讨论】:

    标签: wildfly wildfly-swarm


    【解决方案1】:

    -s-S 之间存在差异。您尝试使用的-S 选项用于选择在uberjar 中与应用程序一起打包的project-*.yml 文件。例如,

    java -jar app-swarm.jar -S local
    

    表示使用了应用内打包的文件project-local.yml

    如果要设置YAML文件的完整路径,需要使用-s

    java -jar app-swarm.jar -s .../path/to/project-defaults.yml
    

    有关更多信息,请参阅文档:http://docs.wildfly-swarm.io/2018.1.0/#configuring-an-application-using-yaml

    【讨论】:

    • 嗨@Ladicek,有什么方法可以使用 -S 来引用嵌入式默认 project-defaults.yml 吗?我可以通过 -s 和完整路径来做到这一点,但想简化并说服使用内部路径。我尝试使用“-S 默认值”但没有成功
    • 如果包含project-defaults.yml,则无需使用任何参数选择它,它会自动启用。
    • 嗨@Ladicek,我使用的是 swarm 版本 2018.5.0。我的 project-defaults.yml 放在 src/main/resources 中。这有效: java -jar ./target/core-hollow-swarm.jar ./target/core.war -s src/main/resources/project-defaults.yml 这不是: java -jar ./target/core -hollow-swarm.jar ./target/core.war。我同意:文档说不要指定,因为它将被自动包含在内。我在做一些可疑的事情
    • Aaaa 我忘了这是一个空的 JAR。我现在不记得细节了,但这是空心 JAR 的一个已知限制。使用空心 JAR 时,您始终必须使用 -s 指定 YAML 文件的完整路径。
    【解决方案2】:

    https://github.com/thorntail/thorntail-examples/blob/master/config-options/cdi-injection/src/main/java/org/wildfly/swarm/examples/jaxrs/cdi/Controller.java

    可以帮助您解决问题。

    @Inject
    @ConfigurationValue("some.string.property")
    String stringProperty;
    

    是有效的 CDI 注入解决方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-09
      • 2018-07-21
      • 2020-11-26
      • 1970-01-01
      • 1970-01-01
      • 2016-07-24
      相关资源
      最近更新 更多