2017-01-26 10 views
0
<int:inbound-channel-adapter channel="requestChannel" 
    expression="''"> 
    <int:poller cron="0 0/2 * * * ?"/> 
</int:inbound-channel-adapter> 

<int:chain input-channel="requestChannel" output-channel="requestConcactChannel"> 
    <int:header-enricher default-overwrite="true"> 
     <int:header name="Accept" value="application/json" /> 
     <int:header name="OData-MaxVersion" value="4.0" /> 
     <int:header name="OData-Version" value="4.0" /> 
    </int:header-enricher> 
    <int-http:outbound-gateway 
     url="#{requestbl.geturl()}" 
     expected-response-type="java.lang.String" http-method="GET" 
     header-mapper="headerMapper" > 
    </int-http:outbound-gateway> 
    <int:service-activator ref="accountResponseHandler" /> 
</int:chain> 

これに続いて、outbound-gatewayを使用していくつかのURLのリクエストを送信するために使用しているコードを示します。私は動的にこのURLを生成する必要があります。動的パラメータを使用して発信ゲートウェイを呼び出します。

requestbl.geturl()は私にURL値を返しますが、アプリケーションがロードされたときに一度だけ呼び出されます。要求が送信されるたびにロードしたいと思います。

<xsd:attribute name="url-expression" type="xsd:string" use="optional"> 
     <xsd:annotation> 
      <xsd:documentation> 
       <![CDATA[ 
SpEL Expression resolving to a URL to which the requests should be sent. The resolved 
value may include {placeholders} for further evaluation against uri-variables. 
       ]]></xsd:documentation> 
     </xsd:annotation> 
    </xsd:attribute> 

これは、各requestMessageに対して、実行時に呼び出され、また、あなたがその式から任意のBeanを呼び出すことができます。

答えて

1

はあなたのための選択肢があります。

だから、あなたのユースケースは次のようになります:

url-expression="@requestbl.geturl()" 
+0

説明してくれてありがとう。 –

関連する問題