如何从 .properties 文件中读取属性
How to read properties from .properties file in Mule
我正在尝试使用 Mule Credentials Vault 安全功能。
我创建了 .properties 文件,安全性 属性 占位符并定义了密钥和加密算法。
现在我想在 return HTTP 响应时使用文件中的一些属性。
我有文件 src/main/resources/data.properties,其中包含例如:
在我的 canvas 配置下 XML 我添加了:
<secure-property-placeholder:config name="Secure_Property_Placeholder" key="24681357" location="data.properties" doc:name="Secure Property Placeholder" encryptionAlgorithm="DES"/>
<set-variable variableName="card.number" value="${number}" />
在我的 canvas 中,我有构建 xml 'Create XML response based on User' 的消息流。设置中的值为:
这行不通。我得到的错误是:
-> org.mule.module.launcher.DeploymentInitException: IllegalArgumentException: Could not resolve placeholder 'key' in string value "${key}"
-> Caused by: org.mule.api.lifecycle.InitialisationException: Invalid bean definition with name 'org.mule.autogen.bean.13' defined in null: Could not resolve placeholder 'key' in string value "${key}"; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'key' in string value "${key}"
-> Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'key' in string value "${key}"
有谁知道如何从 .properties 文件(凭据保险库)中读取属性?然后在我的流程中使用它?
谢谢,
可人
恐怕你做不到。 Mule Credentials Vault 是一项企业功能,因此通常您无法访问源代码,除非您是 MuleSoft 客户。
即使您是客户,您使用的 api 也会不受支持。我建议手动创建一个自定义 java 组件来使用您的代码和 Jasypt(不是作为 属性 占位符而是作为库)。
如果您是客户(我猜您知道您正在使用凭据库),另一种选择是联系官方支持,以便他们为您处理。
如果您只想获取 属性 number
的值并将其添加到 XML 中,您可以使用 .properties 中的 ${number} 。无需在 Configuration XML.
中定义任何其他变量
<set-payload value="<user><name>Royal Bank of Canada</name><id>Royal_Bank_Of_Canada</id><cc><company>>Visa</company><number>${number}</number><secret>123</secret></cc></user>" doc:name="Set Payload"/>
但是请注意,属性 占位符在启动时已解析,因此您将无法根据某些用户输入动态检索 属性。为此,您必须进行一些 Java 编码。 This SO post gives you some hints on how this can be achieved. Based on those answers I have created a simple example 关于如何使用一个非常简单的帮助程序 bean 完成此操作。
属性 占位符用于在启动时解析,因此您将无法根据某些用户输入动态检索 属性。
在 MEL 的 .properties 中使用 ${属性Name} 访问特定的 属性
您可以从 Dataweave 中阅读它,如下所示
p('variablename')
其中变量名在 属性 文件中定义,例如:变量名 = 15
我正在尝试使用 Mule Credentials Vault 安全功能。 我创建了 .properties 文件,安全性 属性 占位符并定义了密钥和加密算法。 现在我想在 return HTTP 响应时使用文件中的一些属性。
我有文件 src/main/resources/data.properties,其中包含例如:
在我的 canvas 配置下 XML 我添加了:
<secure-property-placeholder:config name="Secure_Property_Placeholder" key="24681357" location="data.properties" doc:name="Secure Property Placeholder" encryptionAlgorithm="DES"/>
<set-variable variableName="card.number" value="${number}" />
在我的 canvas 中,我有构建 xml 'Create XML response based on User' 的消息流。设置中的值为:
这行不通。我得到的错误是:
-> org.mule.module.launcher.DeploymentInitException: IllegalArgumentException: Could not resolve placeholder 'key' in string value "${key}"
-> Caused by: org.mule.api.lifecycle.InitialisationException: Invalid bean definition with name 'org.mule.autogen.bean.13' defined in null: Could not resolve placeholder 'key' in string value "${key}"; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'key' in string value "${key}"
-> Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'key' in string value "${key}"
有谁知道如何从 .properties 文件(凭据保险库)中读取属性?然后在我的流程中使用它?
谢谢, 可人
恐怕你做不到。 Mule Credentials Vault 是一项企业功能,因此通常您无法访问源代码,除非您是 MuleSoft 客户。
即使您是客户,您使用的 api 也会不受支持。我建议手动创建一个自定义 java 组件来使用您的代码和 Jasypt(不是作为 属性 占位符而是作为库)。
如果您是客户(我猜您知道您正在使用凭据库),另一种选择是联系官方支持,以便他们为您处理。
如果您只想获取 属性 number
的值并将其添加到 XML 中,您可以使用 .properties 中的 ${number} 。无需在 Configuration XML.
<set-payload value="<user><name>Royal Bank of Canada</name><id>Royal_Bank_Of_Canada</id><cc><company>>Visa</company><number>${number}</number><secret>123</secret></cc></user>" doc:name="Set Payload"/>
但是请注意,属性 占位符在启动时已解析,因此您将无法根据某些用户输入动态检索 属性。为此,您必须进行一些 Java 编码。 This SO post gives you some hints on how this can be achieved. Based on those answers I have created a simple example 关于如何使用一个非常简单的帮助程序 bean 完成此操作。
属性 占位符用于在启动时解析,因此您将无法根据某些用户输入动态检索 属性。
在 MEL 的 .properties 中使用 ${属性Name} 访问特定的 属性
您可以从 Dataweave 中阅读它,如下所示 p('variablename') 其中变量名在 属性 文件中定义,例如:变量名 = 15