簡體   English   中英

將Spring bean注入Camel DSL

[英]Injecting Spring bean into Camel DSL

試圖將春豆添加到駱駝的身體屬性。 就像是:

MVEL: exchange.in.body.limit = uiLimit
<transform>
    <mvel>
        exchange.in.body.limit = uiLimit;
        exchange.in.body;
    </mvel>
</transform>
Spel: request.body.limit = uiLimit

甚至甚至放在標頭中:

<setHeader headerName="limit">
  <simple>ref:uiLimit</simple>
</setHeader>

uiLimit在哪里:

<bean id="uiLimit" class="java.math.BigInteger">
  <constructor-arg value="${UI_LIMIT} />
</bean>

並且仍然在標頭和屬性中獲取null。

有什么想法為什么在Registry中無法在OSGI中進行bean查找? (單個捆綁包中的所有bean /路由)

PS:這在Route中工作正常:

<bean ref="uiLimit" method="toString"/>

transform僅用於轉換消息正文。 不改變標題。

如果要更改標題,請使用setHeader

出現這種情況的原因是,Exchange在另一個捆綁軟件中創建並通過公開的服務而來:

<osgi:service ref="someHandler" interface="org.apache.camel.Component"/>

Exchange包含未聲明此bean的另一個捆綁軟件中的Registry / Context。 所有表達語言都與附加到Exchange的注冊表/上下文一起使用,而不與當前好友的注冊表一起使用

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM