我尝试使用自定义参数运行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
在这种情况下,将忽略包含属性的文件,并且服务器以默认配置启动。
项目默认文件是否应该在我的项目中的特定文件夹中?有人知道如何解决这个问题吗?
谢谢
答案 0 :(得分:2)
-s
和-S
之间存在差异。您尝试使用的-S
选项用于选择与应用程序一起打包的project-*.yml
文件,位于uberjar内。例如,
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
答案 1 :(得分:0)
可以帮助您找出问题所在。
@Inject
@ConfigurationValue("some.string.property")
String stringProperty;
是有效的CDI注入解决方案。