我有一个使用mule apikit构建的mule应用程序。 mule-app.properties文件包含以下属性:
orig.db.url=jdbc:db2://mmrs001.nmd.net:1004/dudu:user=abc43;password=xxxx;
自定义属性文件src / main / resources / dev.properties包含以下属性:
db.url=${orig.db.url}
并且,mule配置xml文件包含以下property-placeholder:
<context:property-placeholder location="dev.properties"/>
现在,当我在本地部署它时,一切正常,我能够运行流程。但是,在我在Cloudhub上部署的同时,它给出了以下异常:
Invalid bean definition with name 'get:/total_amount:total_amount-db-config' defined in null: Could not resolve placeholder 'orig.db.url' in string value "jdbc:db2://mmrs001.nmd.net:1004/dudu:user=abc43;password=xxxx;"
我无法理解我在这里缺少什么?
答案 0 :(得分:2)
答案 1 :(得分:2)
mule-app.properties将添加到系统属性而不是类路径属性。我们无法从添加到classpath的属性文件中引用系统属性。我们需要将这些属性移动到类路径以在运行时解决这些问题。
通过使用以下方法导入mule-app.properties来覆盖此行为的一种方法:
<context:property-placeholder location="mule-app.properties,dev.properties”/>
它告诉spring按各自的顺序加载属性。因此,首先加载mule-app.properties然后加载dev.properties。
但是,将mule-app.properties文件包含在类路径中并不是最佳做法。最好的方法是从mule-app.properties中删除dev属性并将其放在dev.properties中。
答案 2 :(得分:0)
默认情况下,部署到cloudhub时,mule-app.properties中的所有属性都应显示在属性选项卡中。你第一次部署时没有看到它们吗?