2017-01-05 3 views
0

Ich habe eine Linie, wie dies in meinem Fluss liest:Mule: Extrahierung Anschluss-ref zu Eigenschaftendatei

<jms:inbound-endpoint queue="${queue.name}" connector-ref="${inbound.connector}" doc:name="Inbound Endpoint"> 

Wo der „$ {inbound.connector}“ Eigenschaft in meinen Eigenschaften in eine Zeichenfolge verweist Datei :

inbound.connector=Active_MQ 

der Grund, warum ich dies tue, ist, weil der Anschluss-ref abhängig von der Umgebung variieren. Manchmal wird es ein Active_MQ-Connector sein, manchmal wird es ein JMS Connector sein.

Die Properties-Datei ist unter src/main/resources, wie es sein sollte. Ich habe andere Eigenschaften im Ablauf, die aus der Eigenschaftendatei gelesen werden können, wie zum Beispiel die Eigenschaft "queue.name". Doch aus irgendeinem Grund, wenn ich versuche zu starten Mule es einen Fehler zurückkehrt sagen:

NoSuchBeanDefinitionException: No bean named '${inbound.connector}' is defined. 

Soweit ich die Stecker-ref-Wert kennen, ist nur eine Zeichenfolge, so sollte dies in der Theorie funktionieren. Ich verstehe diesen Fehler nicht. Ist der Connector-Ref tatsächlich kein String, und dieser Ansatz ist illegal?

Antwort

0

Intern mule Laufzeit erstellt/initialisiert alle Stecker Objekte (Federbohne) wie HTTP-Anschlüsse, Anschlüsse DATASOURCE und verschiedenen anderen Anschluss des, wenn die Anwendung kommt. Alle diese Anschlüsse sind nichts anderes als ein Frühling Bohnen wie Mule ist oben auf Springframe geschrieben. Daher ist es nicht möglich, es dynamisch zu machen, indem ein String-Wert übergeben wird, der ein Objekt erwartet.