我们有一个名为BaseByBase的java Web启动程序,它有一个外部内部库,它具有以下spring属性源标记@PropertySource("${appclient}")
。 "${appclient}"
的值在BaseByBase的JNLP文件中指定为<property name="appclient" value="url to location"/>
。
当我通过其jnlp文件运行BaseByBase时,一切正常。我们还有另一个jnlp程序VOCs可以启动它自己的BaseByBase。 VOC的JNLP文件还包含<property name="appclient" value="url to location"/>
,它可以毫无问题地启动BaseByBase。
现在我们正在努力让我们的第三个程序GATU也运行BaseByBase。 Gatu具有与VOC相同的代码来启动BaseByBase,其JNLP文件也包含<property name="appclient" value="url to location"/>
。如果我在本地运行Gatu,一切都按预期工作。但是当我从其JNLP运行GATU并从中启动BaseByBase时,我收到以下错误Failed to initialize application context: java.lang.IllegalArgumentException: Could not resolve placeholder 'appclient' in string value [${appclient}]
。
我尝试使用System.setProperty
设置字符串值但是没有修复它。更改了库代码,以便属性源指向属性文件的位置,但也没有这样做。
有关如何解决此问题的任何想法?我们的JNLP文件已签名,因此我认为可以通过JNLP设置不安全的系统属性。
答案 0 :(得分:0)
@PropertySource(value={"classpath:appclient.properties"})